在数据源上,如DataTable加一个新行(方法NewRow),然后在绑定DataGrid,DataGrid自然会出现一个待填写的新行,然后在DataGrid的Update事件中判断是用insert还是update,我一般用当前DataKeys是不是空做条件做DataGrid的时候先做成绑定列然后再转换成模板列(VS中提供这样的方法)

解决方案 »

  1.   

    但是这样有个问题,我不是修改一行就提交到数据库的,我要的是整体表格提交,所以所有的修改必须临时保存,到是把DATATABLE存进SESSION里不错
      

  2.   

    一般是放在ViewState里,当然只放当前页的数据临时修改的东西放在隐藏域里。
      

  3.   

    放在ViewState里如何放?每行的字段用分割符合连起来?当遇到特殊的分割符怎么办
      

  4.   

    用可以自动保存数据的啊
    比如:DataGrid(Itemtemplate里放TextBox)
      

  5.   

    最后,不太想用datagrid
    Repeater应该可以达到一样的功能吧(除了分页)
      

  6.   

    生成服务器端的Table每列对应一个字段,每个Cell中动态添加一个TextBox控件,然后保存修改时都是对Table中的多有行列的数据进行删除然后插入操作。
      

  7.   

    datagrid容易用,功能也有些限制,占用内存大,不好做界面(没HTML容易)
      

  8.   

    to veryhappy(wx.net):主要是提交的时候,内容还需要临时保存,否则会丢失
      

  9.   

    ViewState是一个object类型的对象,你可以把整个DataGrid/DataTable放在里边,最后再提交,刷新页面是不会丢失ViewState的。
      

  10.   

    如果把整个DataGrid放到ViewState里,那ViewState不是很大了吗
      

  11.   

    ???不大明白!倒是同意 veryhappy(wx.net)的
      

  12.   

    我的做法是,
    自定义一个继承datagrid的控件,把dataset放在datagrid控件的viewstate中,datset的数据源自动产生一个行状态列,标志行状态(modified,notmodified,new,newmodified)
    当新增一行数据时,把datagrid中各个控件的值写到相应的dataset中,保存后,再把dataset中的值绑定到datagrid中。实现了,很好用,不过就是当dataset中的数据量过大时,很慢。当数据很少时。相当好用。
      

  13.   

    其实无论是session还是viewstates都是保存编辑状态下的一种手段。与实际的怎么样实现在线编辑表格的具体的方案好像没 什么大的关系,其实像保存这种临时状态还有很多的方法的,数据库德临时表,xml等等 ,建议大家还是把解决的重点放在表格上