试了下datagrid的批量编辑,呵呵,以前没有这种需求。。
1、默认的行编辑模式时,不可能一次打开多行编辑模式(默认编辑模式);
2、多行编辑实现方法:
2-1:客户端js,功能太强大了,实现这,小菜一碟(但是编码量和余下方法相比---巨大,尤其批量更新、翻页时)
2-2:在EditCommand方法里,不象常规做法对EditItemIndex属性赋值,而是加入自己的一套:例如,马上往欲编辑的多行里每列加入个TextBox,并将之前的各个对应值写入,等待用户编辑即可。麻烦的是你还得自己控制datagrid的update并恢复前貌。
2-3:呵呵,投机取巧做法(最简单)--无技术含量,请勿投掷鸡蛋类废弃物 :)
在最开始设计datagrid时,就将需要编辑的列设置为“模版列”,在ItemTemplate(不是EditItemTemplate)里加入一个Textbox,这样实际上每个“欲编辑的行”都有个Textbox了。注意了,通过对css的设计调整,使用户在使用的时候察觉不到有个textbox。。(类似于:<asp:TextBox ID="TextBox1" runat="server" Style="border-top-style: none; border-right-style: none;border-left-style: none; border-bottom-style: none"></asp:TextBox>)。当触发“多行编辑”事件时,用另一个css的class替换掉当前的,用户说:“哦,我看见了Textbox了,知道要编辑了”。。。注意这时也不需要对EditItemIndex属性赋值。编辑完了再换回原来的css即可。
3、BTW,asp.net2.0里用的是GridView来代替DataGrid了,主要为了数据绑定。上面谈到的这一块还是通用的。