extjs3.4/Ext.NET:更改不是';t通过Ext.data.Record.set(';字段';值)反映在网格上
这是一个相当小的问题,但它一直困扰着我一段时间。我们来举一个非常简单的例子: 商店:extjs3.4/Ext.NET:更改不是';t通过Ext.data.Record.set(';字段';值)反映在网格上,extjs,ext.net,Extjs,Ext.net,这是一个相当小的问题,但它一直困扰着我一段时间。我们来举一个非常简单的例子: 商店: <ext:Store ID="myStore" runat="server" UseIdConfirmation="true"> <Reader> <ext:JsonReader IDProperty="fieldId"> <Fields> <ext:RecordField Na
<ext:Store ID="myStore" runat="server" UseIdConfirmation="true">
<Reader>
<ext:JsonReader IDProperty="fieldId">
<Fields>
<ext:RecordField Name="myField" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
这样,存储值会更新,但不会在网格中显示“foo”
我知道一个简单的例子
grd.view.refresh()
将更新网格,但它会清除“污垢”,我希望它变脏(听起来很讨厌),以便向用户反馈值尚未提交(您知道,右上角的红色小箭头)
这在任何程度上都不是什么大问题,我知道这是可以做到的,因为我以前做过(我只是不记得在哪里或如何做),所以这里出了什么问题
PS:我再怎么强调也不过分,这是对实际问题的一个非常简化的设想,因此可能会有一些东西在把事情搞砸之间,但我发现这是非常不可能的。尝试使用,
myStore.reload()代码>
函数,请确保在重新加载网格数据的存储中声明“onRead”函数
[
]
无论何时调用重载函数,它都会触发onread函数。我无法重现该问题。这是我测试的完整aspx页面:也许,您只是缺少商店中的update
事件。您是否尝试过用beginEdit
和endEdit
包装集合
?
<ext:GridPanel ID="myGrid" runat="server" StoreID="myStore Width="200">
<ColumnModel>
<Columns>
<ext:Column ColumnID="myField" Header='My Field' DataIndex="myField" AutoDataBind="true" Width="180" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server" MoveEditorOnEnter="false" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
<Click Handler="changeRowValue(rowIndex, myGrid)" />
var newValue = 'foo';
var changeRowValue = function(rowIndex, grd){
var store = grd.getStore();
store.getAt(rowIndex).set('myField', newValue);
}
<ext:Store ID="myStore" runat="server" UseIdConfirmation="true" onRead="Load_Grid_Data">
<Reader>
<ext:JsonReader IDProperty="fieldId">
<Fields>
<ext:RecordField Name="myField" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
var newValue = 'foo';
var changeRowValue = function(rowIndex, grd){
var store = grd.getStore();
store.getAt(rowIndex).set('myField', newValue);
store .reload();
}
protected void Load_Grid_Data (){//load grid}