의 변경 사항은 그리드에 반영되지 않습니다. 꽤 작은 문제이지만 잠시 동안 나를 괴롭 히고 있습니다.ExtJS 3.4/Ext.NET : Ext.data.Record.set ('field', value)
스토어 :의 아주 간단한 예와 함께 가자
<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>
그리드 :
단순화하기 위해<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);
}
이렇게하면 저장소 값은 업데이트되지만 그리드에는 'foo'가 표시되지 않습니다.
나는 간단한grd.view.refresh()
그리드를 업데이트합니다 알고 있지만을주고 그것은 "먼지"청소하고 나는 그것이 더러운 (즉, 불쾌한 소리)하고 싶습니다 값이 아직 커밋되지 않았다는 사용자 의견 (알다시피, 오른쪽 상단의 작은 빨간색 화살표).
이것은 어느 정도 큰 문제가 아니며 이전에 해 보았 기 때문에 수행 할 수 있음을 알고 있습니다. (어디에서 어떻게 기억이 나지 않아서) 여기서 무엇이 잘못 되었습니까?
추신 : 이것은 실제 문제에 대한 매우 단순화 된 비전이므로 충분히 혼란 스러울 수 있습니다. 그러나 나는 매우 드문 것으로 생각합니다.
문제를 재현 할 수 없습니다. 이것은 내가 테스트 한 전체 aspx 페이지입니다 : http://pastebin.com/A6rRhKs6 어쩌면, 당신은 방금 상점에서'update' 이벤트를 놓치고 있습니다. 'set'을'beginEdit'와'endEdit'으로 싸우려고 했습니까? – astrada