在C#中点击新增按钮,就可以在dataGridView中新增一个空白行,然后可以编辑,实现 20
展开全部
用BindingList<T>泛型集合
这个是.NET4.0提供的新类型 可以同步更新数据源与dataGridView的显示
事件代码中给你举个我们项目中的例子吧
FoodMaterial fm = new FoodMaterial();
fm.FMS_Id = 1;
fm.FM_CnName = "小白菜";
fm.FM_EnName = "xiaobaicai";
fm.UpdateState = 2;
((BindingList<FoodMaterial>)dataGridView1.DataSource).Add(fm);
这个是.NET4.0提供的新类型 可以同步更新数据源与dataGridView的显示
事件代码中给你举个我们项目中的例子吧
FoodMaterial fm = new FoodMaterial();
fm.FMS_Id = 1;
fm.FM_CnName = "小白菜";
fm.FM_EnName = "xiaobaicai";
fm.UpdateState = 2;
((BindingList<FoodMaterial>)dataGridView1.DataSource).Add(fm);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要用到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绑定数据。
页面上:
<asp:TemplateField HeaderText="ID">
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtID" Text='<%# Eval("C_ID") %>' ReadOnly="true"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblID" Text='<%# Eval("C_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
TemplateField里放一个EditItemTemplate、一个ItemTemplate,EditItemTemplate放文本框,ItemTemplate里放个Label(随意吧)。
然后是编辑列:
<asp:TemplateField HeaderText="编辑" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="btn_Edit" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑" CommandArgument='<%# Eval("C_ID")%>'></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btn_update" runat="server" CausesValidation="True" CommandName="Update"
Text="更新" CommandArgument='<%# Eval("C_ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btn_cancel" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
就OK了。
额,如果有取消操作。还要加一个事件:gvList_RowCancelingEdit。
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindGridView();
}
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绑定数据。
页面上:
<asp:TemplateField HeaderText="ID">
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtID" Text='<%# Eval("C_ID") %>' ReadOnly="true"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblID" Text='<%# Eval("C_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
TemplateField里放一个EditItemTemplate、一个ItemTemplate,EditItemTemplate放文本框,ItemTemplate里放个Label(随意吧)。
然后是编辑列:
<asp:TemplateField HeaderText="编辑" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="btn_Edit" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑" CommandArgument='<%# Eval("C_ID")%>'></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btn_update" runat="server" CausesValidation="True" CommandName="Update"
Text="更新" CommandArgument='<%# Eval("C_ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btn_cancel" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
就OK了。
额,如果有取消操作。还要加一个事件:gvList_RowCancelingEdit。
protected void gvList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvList.EditIndex = -1;
BindGridView();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是在网页上的,你直接可以用repeater去做,直接用个dataGird控件,里面自带有这样的功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询