没做过,如果GrideView没有这个功能的话, 倒是可以变通一下,
在grideview下加一行
r=new DataRow(); //new 行
c=new DataCloumn();//new 列
每一列添加一个TextBox控件
这样就可以编辑了
r.add(c);//给行添加列
grideview1.add(r);
// 思路是这样 具体实现代码,不一定是这样的,你看着写吧
//GrideView自带的编辑功能也是这么干的, 剩下就是Code实现的问题了
用BindingList
这个是.NET4.0提供的新类型 可以同步更新数据源与dataGridView的显示
事件代码中给你举个我们项目中的例子吧
FoodMaterial fm = new FoodMaterial();
fm.FMS_Id = 1;
fm.FM_CnName = "小白菜";
fm.FM_EnName = "xiaobaicai";
fm.UpdateState = 2;
((BindingList
主要用到GridView的2个事件:RowEditing、RowUpdating。
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindGridView();
}
protected void gvList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//此处略去更新操作。。。。
gvList.EditIndex = -1;
BindGridView();
}
BindGridView()方法是给GridView绑定数据。
页面上:
TemplateField里放一个EditItemTemplate、一个ItemTemplate,EditItemTemplate放文本框,ItemTemplate里放个Label(随意吧)。
然后是编辑列:
就OK了。
额,如果有取消操作。还要加一个事件:gvList_RowCancelingEdit。
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindGridView();
}
如果是在网页上的,你直接可以用repeater去做,直接用个dataGird控件,里面自带有这样的功能