原文作者:coolite中文社区实习版主summerduck
js代码,只要在页面写入不需要调用即可
- <script type="text/javascript">
- var exportData = function(selectedOnly) {
- var store = GridPanel1.store;
- store.ajaxEventConfig.isUpload = true;
- GridPanel1.submitData(selectedOnly);
- store.ajaxEventConfig.isUpload = false;
- }
- var selectRecord = function(id) {
- var grid = GridPanel1;
- var record = grid.store.getById(id);
- grid.store.openPage(record, function() {
- grid.getSelectionModel().selectRow(grid.store.indexOf(record));
- });
- }
- </script>
页面代码
- <ext:ScriptManager ID="ScriptManager1" runat="server">
- </ext:ScriptManager>
- <ext:Store
- ID="Store1"
- runat="server"
- RefreshAfterSaving="None"
- OnBeforeStoreChanged="SaveHandler">
- <Reader>
- <ext:ArrayReader ReaderID="company">
- <Fields>
- <ext:RecordField Name="table1" />
- <ext:RecordField Name="table3" Type="Float" />
- <ext:RecordField Name="table2" Type="Float" />
- </Fields>
- </ext:ArrayReader>
- </Reader>
- </ext:Store>
- <ext:GridPanel ID="GridPanel1"
- runat="server"
- StoreID="Store1"
- StripeRows="true"
- Title="测试"
- Width="600"
- Height="300"
- AutoExpandColumn="Company">
- <ColumnModel ID="ColumnModel1" runat="server">
- <Columns>
- <ext:Column ColumnID="Company" Header="字段一" Width="160" Sortable="true" DataIndex="table1">
- <Editor>
- <ext:TextField ID="TextField1" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column Header="字段二" Width="75" Sortable="true" DataIndex="table2">
- <Editor>
- <ext:TextField ID="TextField2" runat="server" />
- </Editor>
- </ext:Column>
- <ext:Column Header="字段三" Width="75" Sortable="true" DataIndex="table3">
- <Editor>
- <ext:TextField ID="TextField3" runat="server" />
- </Editor>
- </ext:Column>
- </Columns>
- </ColumnModel>
- <SelectionModel>
- <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
- </SelectionModel>
- <LoadMask ShowMask="true" />
- <BottomBar>
- <ext:PagingToolBar ID="PagingToolBar1" runat="server" PageSize="10" />
- </BottomBar>
- <TopBar>
- <ext:Toolbar ID="Toolbar1" runat="server">
- <Items>
- <ext:Button ID="Button6" runat="server" Text="Save" Icon="Disk">
- //此处便是执行保存的方法
- <Listeners>
- <Click Handler="#{GridPanel1}.save();" />
- </Listeners>
- </ext:Button>
- </Items>
- </ext:Toolbar>
- </TopBar>
- </ext:GridPanel>
cs代码,
Page_Load
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!Ext.IsAjaxRequest)
- {
- this.Store1.DataSource = this.TestData;
- this.Store1.DataBind();
- }
- }
数据
- private object[] TestData
- {
- get
- {
- DateTime now = DateTime.Now;
- return new object[]
- {
- new object[] {"晕", 1, 4},
- new object[] {"晕1", 3, 2},
- new object[] {"晕2", 4, 3},
- new object[] {"晕3", 52, 2}
- };
- }
- }
保存方法
- protected void SaveHandler(object sender, BeforeStoreChangedEventArgs e)
- {
- XmlNode xml = e.DataHandler.XmlData;
- StringBuilder sb = new StringBuilder();
- string value1="";
- string value2="";
- string value3="";
- XmlNode updated = xml.SelectSingleNode("records/Updated");
- if (updated != null)
- {
- XmlNodeList uRecords = updated.SelectNodes("record");
- foreach (XmlNode record in uRecords)
- {
- if (record != null)
- {
- value1 = record.SelectSingleNode("table1").InnerText;
- value2 = record.SelectSingleNode("table2").InnerText;
- value3 = record.SelectSingleNode("table3").InnerText;
- //可以在这里写入自己的保存方法,支持对数据库及XML文件,以下是测试打印
- sb.Append("<br>" + value1 + "<br>" + value2 + "<br>" + value3 + "<br>");
- }
- }
- }
- Ext.Msg.Alert("测试信息", sb.ToString()).Show();
- e.Cancel = true;
- }