cherno(且歌且狂) ,你说的是生成非网格型的啊,我说的是网格型的datagrid,呵呵

解决方案 »

  1.   

    datagrid中显示的数据本来就是"只读"的,你不可以直接改。 修改、删除的功能在在线帮助中就有例子,你自已查。增加时加入一个新行来实现的方法可以参见下面的例子:
    Quickly Adding A New Row In DataGrid 
    http://www.dotnetbips.com/displayarticle.aspx?id=125
      

  2.   

    spring_ok(SpringDotNet) ,本来就是只读的?但我不设置this.datagrid1.readonly = true,则显示的数据可以修改,如果是只读,ms让它能修改是什么意思?
    这几天datagrid弄的我太糊涂了,呵呵
      

  3.   

    spring_ok(SpringDotNet) ,我说的是windows.forms.datagrid,你举的例子是web中的啊,有没有windows中的例子?
      

  4.   

    1,增加都好办,this.grid.ReadOnly = false ;
    DataRow r ;
    r = dt.NewRow() ;//dt 为数据源
    dt.Rows.Add(r) ;
    2修改,你若要做到(只是选择的才变,没选中的依然是只读的),可能有点麻烦,那要继承DataGridTextBoxColumn,override它的edit 事件,根据datagrid的选择列的值,如果true,则base.edit(),else return;
    3,修改好了,会自动写到你绑定的datatable中,你必须用ds.update(dt)写回到数据库,也可以用sql,我想你应加一保存按钮,将修改后的信息写回到数据库,你也可以在别的事件中,如currentCellchange等事件中写回,但我想这样是不好的。
      

  5.   

    好像应该利用DataTable来做!:)
      

  6.   

    2002pine() :
    1,增加的部分我也试了你给的方法,但如果设置了this.grid.readonly=false,其他所有的行都可以改了。
    2,我也觉得这里最麻烦,要选择的行才能修改,我的datagrid是有多种类型的column,包括bool,textbox,难道都要重写?选中的参数怎么传进去?我的想法是先选中某行,单击修改按钮,此行边成可修改的,同时修改按钮变成提交按钮,如果能象web中有buttonColumn就好了,呵呵
    3,我打算用sql来直接写数据库,ds.update(dt)这样会快些吗?? herogjh(驼背软件) :你能不能说详细点?谢谢
      

  7.   

    自己构造一个DataTable,然后将需要写入的数据加到里面,再把这个DataTable作为DataGrid的数据源,你试试是否可以写进去,具体我还没有做过(还没有接触过DataGrid)!:)
      

  8.   

    你要想增加时其它的也不能修改.你只有重写DataGridTextBoxColumn,
    1,增加时,让选择栏为true;
    2,你的栏,是不是一个选择栏和多个textbox,如果这样,你只要重写textbox
    3,让你的bool选择栏的readonly 为false;当你按下修改,增加,删除时,让它的readonly 为true;以供选择,
    4,只有选 择栏为true 时,这一行才是可修改,按我说的方法,override edit()事件,
    在edit 选中的参数,是这样DataGrid grid=this.DataGridTableStyle.DataGrid;
    if grid[row,selectColumn].toString.toupper="TRUE"
    base.edit(....)
    row是edit 本身的参数,表示第几行,
    selectColumn是你的选择栏的栏数
      

  9.   

    sorry
    3,让你的bool选择栏的readonly 为true;当你按下修改,增加,删除时,让它的readonly 为false;以供选择,