这个问题,你们有没有办法? cherno(且歌且狂) ,你说的是生成非网格型的啊,我说的是网格型的datagrid,呵呵 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 datagrid中显示的数据本来就是"只读"的,你不可以直接改。 修改、删除的功能在在线帮助中就有例子,你自已查。增加时加入一个新行来实现的方法可以参见下面的例子:Quickly Adding A New Row In DataGrid http://www.dotnetbips.com/displayarticle.aspx?id=125 spring_ok(SpringDotNet) ,本来就是只读的?但我不设置this.datagrid1.readonly = true,则显示的数据可以修改,如果是只读,ms让它能修改是什么意思?这几天datagrid弄的我太糊涂了,呵呵 spring_ok(SpringDotNet) ,我说的是windows.forms.datagrid,你举的例子是web中的啊,有没有windows中的例子? 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等事件中写回,但我想这样是不好的。 好像应该利用DataTable来做!:) 2002pine() :1,增加的部分我也试了你给的方法,但如果设置了this.grid.readonly=false,其他所有的行都可以改了。2,我也觉得这里最麻烦,要选择的行才能修改,我的datagrid是有多种类型的column,包括bool,textbox,难道都要重写?选中的参数怎么传进去?我的想法是先选中某行,单击修改按钮,此行边成可修改的,同时修改按钮变成提交按钮,如果能象web中有buttonColumn就好了,呵呵3,我打算用sql来直接写数据库,ds.update(dt)这样会快些吗?? herogjh(驼背软件) :你能不能说详细点?谢谢 自己构造一个DataTable,然后将需要写入的数据加到里面,再把这个DataTable作为DataGrid的数据源,你试试是否可以写进去,具体我还没有做过(还没有接触过DataGrid)!:) 你要想增加时其它的也不能修改.你只有重写DataGridTextBoxColumn,1,增加时,让选择栏为true;2,你的栏,是不是一个选择栏和多个textbox,如果这样,你只要重写textbox3,让你的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是你的选择栏的栏数 sorry3,让你的bool选择栏的readonly 为true;当你按下修改,增加,删除时,让它的readonly 为false;以供选择, 求大神 类型System.String的对象无法转换成类型System.Object[]。。 请教一个菜鸟问题,datagridview和listbox 求助!!!委托+类+。。。问题奇怪 高手进! C# timer问题 本机加入域,修改本机名 c#中的打印问题 如何调试程序集? 有没有人可以帮我解决这道题,因为我不会数据导入?急!!!!!!!! 金山毒霸和VS.NET 如果用.NET(C#)编写网络客户端,能否与采用C++或Java编写的服务器端进行很好的通讯? 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到 怎样将文件存在客户端?
Quickly Adding A New Row In DataGrid
http://www.dotnetbips.com/displayarticle.aspx?id=125
这几天datagrid弄的我太糊涂了,呵呵
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等事件中写回,但我想这样是不好的。
1,增加的部分我也试了你给的方法,但如果设置了this.grid.readonly=false,其他所有的行都可以改了。
2,我也觉得这里最麻烦,要选择的行才能修改,我的datagrid是有多种类型的column,包括bool,textbox,难道都要重写?选中的参数怎么传进去?我的想法是先选中某行,单击修改按钮,此行边成可修改的,同时修改按钮变成提交按钮,如果能象web中有buttonColumn就好了,呵呵
3,我打算用sql来直接写数据库,ds.update(dt)这样会快些吗?? herogjh(驼背软件) :你能不能说详细点?谢谢
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是你的选择栏的栏数
3,让你的bool选择栏的readonly 为true;当你按下修改,增加,删除时,让它的readonly 为false;以供选择,