您是否尝试过设置 的EditIndex
属性DataGrid
?
例子:
<asp:GridView runat="server" onrowediting="grdProducts_RowEditing"
ID="grdProducts">
<Columns>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
背后的代码
protected void grdProducts_RowEditing(object sender, GridViewEditEventArgs e)
{
this.grdProducts.EditIndex = e.NewEditIndex;
This.BindGrid();
}
请注意,您必须重新绑定网格
通常您保存每行的数据,这意味着您在每一行中都有一个编辑链接,在您进入编辑模式后,会出现一个保存按钮和一个可选的取消按钮,这将允许您保存该特定行的值
使用以下方法时,遵循这种方法是微不足道的GridView
:
protected void grdProducts_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
// old values for the current row
var oldValues = e.OldValues;
// new (updated) values for the current row
var newvalues = e.NewValues;
// Exit edit mode
this.grdProducts.EditIndex = -1;
// Update the grid
this.BindGrid();
}
在网格标记中只需添加以下内容:
onrowupdating="grdProducts_RowUpdating"
如果您需要在编辑或以只读模式显示单元格数据时指定自定义控件,请使用网格模板:
<Columns>
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>