关于GridPanel中的修改保存(转自coolite中文社区)

原文作者:coolite中文社区实习版主summerduck

js代码,只要在页面写入不需要调用即可

  1. <script type="text/javascript">
  2.         
  3.         var exportData = function(selectedOnly) {
  4.             var store = GridPanel1.store;
  5.             store.ajaxEventConfig.isUpload = true;
  6.             GridPanel1.submitData(selectedOnly);
  7.             store.ajaxEventConfig.isUpload = false;
  8.         }
  9.         var selectRecord = function(id) {
  10.             var grid = GridPanel1;
  11.             var record = grid.store.getById(id);
  12.             grid.store.openPage(record, function() {
  13.                 grid.getSelectionModel().selectRow(grid.store.indexOf(record));
  14.             });
  15.         }
  16.     </script>
复制代码

页面代码

  1. <ext:ScriptManager ID="ScriptManager1" runat="server">
  2. </ext:ScriptManager>
  3. <ext:Store
  4. ID="Store1"
  5. runat="server"
  6. RefreshAfterSaving="None"
  7. OnBeforeStoreChanged="SaveHandler">
  8. <Reader>
  9. <ext:ArrayReader ReaderID="company">
  10. <Fields>
  11. <ext:RecordField Name="table1" />
  12. <ext:RecordField Name="table3" Type="Float" />
  13. <ext:RecordField Name="table2" Type="Float" />
  14. </Fields>
  15. </ext:ArrayReader>
  16. </Reader>
  17. </ext:Store>
  18. <ext:GridPanel ID="GridPanel1"
  19. runat="server"
  20. StoreID="Store1"
  21. StripeRows="true"
  22. Title="测试"
  23. Width="600"
  24. Height="300"
  25. AutoExpandColumn="Company">
  26. <ColumnModel ID="ColumnModel1" runat="server">
  27. <Columns>
  28. <ext:Column ColumnID="Company" Header="字段一" Width="160" Sortable="true" DataIndex="table1">
  29. <Editor>
  30. <ext:TextField ID="TextField1" runat="server" />
  31. </Editor>
  32. </ext:Column>
  33. <ext:Column Header="字段二" Width="75" Sortable="true" DataIndex="table2">
  34. <Editor>
  35. <ext:TextField ID="TextField2" runat="server" />
  36. </Editor>
  37. </ext:Column>
  38. <ext:Column Header="字段三" Width="75" Sortable="true" DataIndex="table3">
  39. <Editor>
  40. <ext:TextField ID="TextField3" runat="server" />
  41. </Editor>
  42. </ext:Column>
  43. </Columns>
  44. </ColumnModel>
  45. <SelectionModel>
  46. <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
  47. </SelectionModel>
  48. <LoadMask ShowMask="true" />
  49. <BottomBar>
  50. <ext:PagingToolBar ID="PagingToolBar1" runat="server" PageSize="10" />
  51. </BottomBar>
  52. <TopBar>
  53. <ext:Toolbar ID="Toolbar1" runat="server">
  54. <Items>
  55. <ext:Button ID="Button6" runat="server" Text="Save" Icon="Disk">
  56. //此处便是执行保存的方法
  57. <Listeners>
  58. <Click Handler="#{GridPanel1}.save();" />
  59. </Listeners>
  60. </ext:Button>
  61. </Items>
  62. </ext:Toolbar>
  63. </TopBar>
  64. </ext:GridPanel>
复制代码

cs代码,
Page_Load

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!Ext.IsAjaxRequest)
  4.             {
  5.                 this.Store1.DataSource = this.TestData;
  6.                 this.Store1.DataBind();
  7.             }
  8.         }
复制代码

数据

  1. private object[] TestData
  2. {
  3. get
  4. {
  5. DateTime now = DateTime.Now;
  6. return new object[]
  7. {
  8. new object[] {"晕", 1, 4},
  9. new object[] {"晕1", 3, 2},
  10. new object[] {"晕2", 4, 3},
  11. new object[] {"晕3", 52, 2}
  12. };
  13. }
  14. }
复制代码

保存方法

  1. protected void SaveHandler(object sender, BeforeStoreChangedEventArgs e)
  2. {
  3. XmlNode xml = e.DataHandler.XmlData;
  4. StringBuilder sb = new StringBuilder();
  5. string value1="";
  6. string value2="";
  7. string value3="";
  8. XmlNode updated = xml.SelectSingleNode("records/Updated");
  9. if (updated != null)
  10. {
  11. XmlNodeList uRecords = updated.SelectNodes("record");
  12. foreach (XmlNode record in uRecords)
  13. {
  14. if (record != null)
  15. {
  16. value1 = record.SelectSingleNode("table1").InnerText;
  17. value2 = record.SelectSingleNode("table2").InnerText;
  18. value3 = record.SelectSingleNode("table3").InnerText;
  19. //可以在这里写入自己的保存方法,支持对数据库及XML文件,以下是测试打印
  20. sb.Append("<br>" + value1 + "<br>" + value2 + "<br>" + value3 + "<br>");
  21. }
  22. }
  23. }
  24. Ext.Msg.Alert("测试信息", sb.ToString()).Show();
  25. e.Cancel = true;
  26. }

备注:http://www.coolite.net.cn/frame.php?frameon=yes原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值