Sep 13, 2011, 10:30 AM
How to load/update GridPanel.Store using RowFilter plugin
I try to get data from GridPanel.Store using RowFilter plugin. But that data equals null and it's unclear for me. The question is how to get GridPanel data on the DirectEvent?
<ext:XScript runat="server">
<script type="text/javascript">
var addContactPerson = function () {
var grid = #{ContactPersonsGrid};
grid.getRowEditor().stopEditing();
grid.insertRecord(0, {
FullName : "FullName",
Job : "Job",
Phone : "Phone",
MobilePhone : "MobilePhone",
Email : "your@mail.ru",
IsCurrent: false
});
grid.getView().refresh();
grid.getSelectionModel().selectRow(0);
grid.getRowEditor().startEditing(0);
}
var removeContactPerson = function () {
var grid = #{ContactPersonsGrid};
grid.getRowEditor().stopEditing();
var s = grid.getSelectionModel().getSelections();
for (var i = 0, r; r = s[i]; i++) {
#{ContactPersonsStore}.remove(r);
}
}
</script>
</ext:XScript>
<ext:GridPanel runat="server" ID="ContactPersonsGrid">
<Store>
<ext:Store ID="ContactPersonsStore" runat="server">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="Id" Type="String" />
<ext:RecordField Name="FullName" Type="String" />
<ext:RecordField Name="Job" Type="String" />
<ext:RecordField Name="Phone" Type="String" />
<ext:RecordField Name="MobilePhone" Type="String" />
<ext:RecordField Name="Email" Type="String" />
<ext:RecordField Name="IsCurrent" Type="Boolean" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<Plugins>
<ext:RowEditor runat="server" />
</Plugins>
<View>
<ext:GridView runat="server" MarkDirty="false" />
</View>
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" Text="UserAdd" Icon="UserAdd">
<Listeners>
<Click Fn="addContactPerson" />
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="UserDelete" Icon="UserDelete">
<Listeners>
<Click Fn="removeContactPerson" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:RowSelectionModel runat="server" />
</SelectionModel>
<ColumnModel>
<Columns>
<ext:RowNumbererColumn />
<ext:Column ColumnID="FullName" Header="FullName имя" DataIndex="FullName" Width="170"
Sortable="true">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Job" Header="Job" DataIndex="Job" Width="120" Sortable="true">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Phone" Header="Phone" DataIndex="Phone" Width="140" Sortable="true">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column ColumnID="MobilePhone" Header="MobilePhone" DataIndex="MobilePhone"
Width="140" Sortable="true">
<Editor>
<ext:TextField runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column ColumnID="Email" Header="Email" DataIndex="Email" Width="140" Sortable="true">
<Editor>
<ext:TextField runat="server" AllowBlank="false" Vtype="email" />
</Editor>
</ext:Column>
<ext:BooleanColumn Header="IsCurrent?" DataIndex="IsCurrent" Align="Center" Width="50">
<Editor>
<ext:Checkbox runat="server" />
</Editor>
</ext:BooleanColumn>
</Columns>
</ColumnModel>
</ext:GridPanel>
<div>
<ext:Button runat="server" Text="Save" ID="SubmitButton">
<DirectEvents>
<Click OnEvent="SubmitButtonClick">
<EventMask ShowMask="true"></EventMask>
</Click>
</DirectEvents>
</ext:Button>
</div>
protected void SubmitButtonClick(object sender, DirectEventArgs e) {
// I want to get data from the Grid named ContactPersonsGrid
// But ContactPersonsStore equals null
}