在C#中点击新增按钮,就可以在dataGridView中新增一个空白行,然后可以编辑,实现

最好是写代码的,谢谢,在双击新增按钮的事件中写代码
2024-12-03 17:38:18
推荐回答(4个)
回答1:

没做过,如果GrideView没有这个功能的话, 倒是可以变通一下,
在grideview下加一行
r=new DataRow(); //new 行
c=new DataCloumn();//new 列
每一列添加一个TextBox控件
这样就可以编辑了

r.add(c);//给行添加列
grideview1.add(r);

// 思路是这样 具体实现代码,不一定是这样的,你看着写吧
//GrideView自带的编辑功能也是这么干的, 剩下就是Code实现的问题了

回答2:

用BindingList泛型集合
这个是.NET4.0提供的新类型 可以同步更新数据源与dataGridView的显示

事件代码中给你举个我们项目中的例子吧
FoodMaterial fm = new FoodMaterial();
fm.FMS_Id = 1;
fm.FM_CnName = "小白菜";
fm.FM_EnName = "xiaobaicai";
fm.UpdateState = 2;
((BindingList)dataGridView1.DataSource).Add(fm);

回答3:

主要用到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绑定数据。
页面上:


' ReadOnly="true">


'>


TemplateField里放一个EditItemTemplate、一个ItemTemplate,EditItemTemplate放文本框,ItemTemplate里放个Label(随意吧)。

然后是编辑列:


Text="编辑" CommandArgument='<%# Eval("C_ID")%>'>


Text="更新" CommandArgument='<%# Eval("C_ID")%>'>
  Text="取消">



就OK了。
额,如果有取消操作。还要加一个事件:gvList_RowCancelingEdit。
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindGridView();
}

回答4:

如果是在网页上的,你直接可以用repeater去做,直接用个dataGird控件,里面自带有这样的功能