我有一个基本的 gridview,我将来自 SQL 存储过程的代码的数据绑定(bind)到它。
<asp:GridView ID="gvCheckResults" runat="server"
OnRowDataBound="gvCheckResults_RowDataBound"
RowStyle-CssClass="gridViewRow"
CssClass="gridView"
AlternatingRowStyle-CssClass="gridViewAlternatingRow"
HeaderStyle-CssClass="gridViewHeader">
</asp:GridView>
数据绑定(bind):
gvCheckResults.DataSource = dataContext.GetResults(Name, Address);
gvCheckResults.DataBind();
if (!IsPostBack)
{
//Add Edit column.
CommandField cField = new CommandField();
cField.EditText = "Edit";
cField.ShowEditButton = true;
gvCheckResults.Columns.Insert(0, cField);
}
如何以编程方式将“编辑”按钮添加到每个结果行? 我知道在 aspx 页面中设置数据源对象时该怎么做,但从未以编程方式完成。
最佳答案
像这样尝试
<asp:TemplateField HeaderText="Edit>
<ItemTemplate>
<asp:LinkButton Id="lnkEdit" runat="server" CommandName="Edit" Text="Edit"/>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton Id="lnkEdit" runat="server" CommandName="Update" Text="Update"/>
<asp:LinkButton Id="LinkButton1" runat="server" CommandName="Cancel" Text="Cancel"/>
</EditItemTemplate>
</asp:TemplateField>
OnRowEditEvent()
将 gridview 编辑索引设置为 e.newrowindex
并像这样再次绑定(bind)它。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Write code TO UPDATE YOUR DATABESE THEN WRITE BELOW CODE IN LAST
// To Find Text of TextBox to get updated value....you get it in string like this.
//string strName = ((TextBox)grdview1.Rows[e.RowIndex].Cells[YourColumnIndexInWhichTexBoxAppear].Controls[0]).Text;
GridView1.EditIndex = -1;
GridView1.DataBind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridView1.DataBind();
}
关于c# - gridview 以编程方式编辑模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280495/