操作表格有一种需求,要操作表格需要动态的添加内容,删除内容以及双击的时候进入编辑状态。这个时候怎么办呢,看具体的实现吧。
双击点击的时候可以单元格的操作。
代码:
<code class="hljs actionscript has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><!DOCTYPE html> <html> <head> <meta charset=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"UTF-8"</span>> <meta http-equiv=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Content-Type"</span> content=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"text/html; charset=UTF-8"</span>> <title>Hello Extjs4<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.2</span></title> <link href=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"../ExtJS4.2/resources/css/ext-all.css"</span> rel=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"stylesheet"</span>> <script src=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"../ExtJS4.2/ext-all.js"</span>></script> <script src=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"d1.js"</span>></script> <script src=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"../ExtJS4.2/locale/ext-lang-zh_CN.js"</span>></script> </head> <body> <h1>ExtJS4<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.2</span>学习</h1> <hr /> 作者:springok <h2>ExtJS grid表格</h2> <div id=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"springokgrid"</span>></div> <div id=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"springok1"</span>></div> </body> </html> Ext.onReady(<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//定义列 </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> columns = [ {header:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'编号'</span>,dataIndex:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'id'</span>,width:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">50</span>, editor:{ allowBlank:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span> }}, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//sortable:true 可设置是否为该列进行排序 </span> {header:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'名称'</span>,dataIndex:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'name'</span>,width:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">80</span>}, {header:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'描述'</span>,dataIndex:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'descn'</span>,width:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">112</span>} ]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//定义数据 </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> data =[ [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'1'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'小王'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'描述01'</span>], [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'2'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'李四'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'描述02'</span>], [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'3'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'张三'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'描述03'</span>], [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'4'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'束洋洋'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'思考者日记网'</span>], [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'5'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'高飞'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'描述05'</span>] ]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//转换原始数据为EXT可以显示的数据 </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> store = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Ext.data.ArrayStore({ data:data, fields:[ {name:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'id'</span>}, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//mapping:0 这样的可以指定列显示的位置,0代表第1列,可以随意设置列显示的位置 </span> {name:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'name'</span>}, {name:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'descn'</span>} ] }); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//加载数据 </span> store.load(); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//创建表格 </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> grid = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Ext.grid.GridPanel({ renderTo:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'springokgrid'</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//渲染位置 </span> width:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">550</span>, autoHeight:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span>, store:store, columns:columns, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//显示列 </span> stripeRows:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//斑马线效果 </span> selType: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'cellmodel'</span>, bbar:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Ext.PagingToolbar({ pageSize:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//每页显示几条数据 </span> store:store, displayInfo:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//是否显示数据信息 </span> displayMsg:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'显示第 {0} 条到 {1} 条记录,一共 {2} 条'</span>, <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//只要当displayInfo为true时才有效,用来显示有数据时的提示信息,{0},{1},{2}会自动被替换成对应的数据 </span> emptyMsg: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"没有记录"</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//没有数据时显示信息 </span> }) , plugins:[ Ext.create(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Ext.grid.plugin.CellEditing'</span>,{ clicksToEdit:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置单击单元格编辑 </span> }) ], tbar:[<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-'</span>,{ text:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'添加一行'</span>, handler:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> p ={ id:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">''</span>, name:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">''</span>, descn:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">''</span> }; store.insert(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>,p); } },<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-'</span>,{ text:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'删除一行'</span>, handler:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> Ext.Msg.confirm(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'系统提示'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'确定要删除?'</span>,<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(btn)</span>{</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(btn==<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'yes'</span>){ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> sm = grid.getSelectionModel(); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> record = sm.getSelection()[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>]; store.remove(record); } }); } },<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-'</span>,{ text:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'保存'</span>, handler:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> m = store.getModifiedRecords().slice(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">var</span> jsonArray = []; Ext.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">each</span>(m,<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(item)</span>{</span> jsonArray.push(item.data); }); Ext.Ajax.request({ method:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'POST'</span>, url:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'/ExtJs4.2Pro/EditGridServlet'</span>, success:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(response)</span>{</span> Ext.Msg.alert(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'系统提示'</span>,response.responseText,<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> store.load(); }); }, failure:<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{</span> Ext.Msg.alert(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"错误"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"与后台联系的时候出了问题。"</span>); }, params:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'data='</span>+encodeURIComponent(Ext.encode(jsonArray)) }); } }] }); }); </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li></ul>
效果:
思考的问题:
这里我们启用了CellEditing插件,其他的部分并没有什么变化。可是看到的结果是,现在可以用TextField的方式随意修改单元格。记得不能让单元格为空,否则无法修改。
默认情况下,需要双击单元格才能激活编辑器,从而进行修改。不过,也可以给表格配置上clicksToEdit:1,这样就可以通过单击单元格激活编辑器,从而进行修改,上面的代码中已经用到了。
TextField不允许输入空值,因为在创建columns时对应的editor设置了allowBlank:false属性。allowBlank:false表示不运行在TextField中输入空值。
上面的示例中用到了数组对象的Slice(start,[end])方法,该方法返回一个新数组,包含了原函数从start到end所指定的元素,但是不包括end元素,比如a.slice(0,3)。如果start为负,则将它作为length+start处理(此处length为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4))。如果end为负,就将它作为length+end处理(次数length为数组的长度,比如a.slice(0,-1)。如果省略end,那么slice方法将一直复制到原数组结尾,比如a.slice(1))。如果省略end,那么slice方法将一直复制到原数组结尾,比如a.slice(1)。如果end出现在start之前,不复制任何元素到新数组中,比如a.slice(4,3)。示例中store.getModifiedRecords().slice(0)的作用就是复制store.getModifiedRecords(),保证store.getModifiedRecords()中的原始数据不受影响。
如何添加单击事件
<code class="hljs lua has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> listeners: { cellclick: <span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(view, td, cellIndex, record, tr, rowIndex, e, eOpts)</span></span> { // Ext.Msg.alert(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Selected Record'</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Name : '</span> + record.get(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'id'</span>) + <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">' '</span> + record.get(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'name'</span>)); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(cellIndex == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>) { // cellIndex starts from <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> Ext.Msg.alert(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Selected Record'</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Name : '</span> + record.get(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'id'</span>) + <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">' '</span> + record.get(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'name'</span>)); } }, afteredit: <span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(val)</span></span> { alert(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>) } ,</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; position: absolute; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="color: rgb(255, 153, 0); box-sizing: border-box;"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="border: none; box-sizing: border-box; max-width: 100%;" alt="" /></a></div><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>
ok基本可以了。