c# - gridview 以编程方式编辑模式

标签 c# asp.net sql gridview

我有一个基本的 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/

相关文章:

c# - 如何添加嵌套的 Web.config 文件?

mysql - 在表中显示主键列

MySQL - 触发触发器时重复 PK,但直接插入记录时不重复 PK

mysql - 检索特定月份的数据

javascript - 清理缓存后如何恢复 Blazor WASM "offline-cache"?

asp.net - 关于 ajaxcontrolkit 和替代方案的一些想法

c# - SSH.Net异步文件下载

asp.net - 是否可以在 ASP.NET 5 的 Web API 中使用外部身份提供程序?

c# - 如何从 Action 委托(delegate)创建 MethodInfo

c# - 在 Autofac 服务注册期间修改 WCF 终结点行为