Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# gridview编辑模式以编程方式_C#_Asp.net_Sql_Gridview - Fatal编程技术网

C# gridview编辑模式以编程方式

C# gridview编辑模式以编程方式,c#,asp.net,sql,gridview,C#,Asp.net,Sql,Gridview,我有一个基本的gridview,我将SQL存储过程中的代码中的数据绑定到该gridview <asp:GridView ID="gvCheckResults" runat="server" OnRowDataBound="gvCheckResults_RowDataBound" RowStyle-CssClass="gridViewRow" CssClass="gridView" AlternatingRowStyle-

我有一个基本的gridview,我将SQL存储过程中的代码中的数据绑定到该gridview

<asp:GridView ID="gvCheckResults" runat="server" 
        OnRowDataBound="gvCheckResults_RowDataBound" 
        RowStyle-CssClass="gridViewRow" 
        CssClass="gridView"
        AlternatingRowStyle-CssClass="gridViewAlternatingRow" 
        HeaderStyle-CssClass="gridViewHeader">
    </asp:GridView> 
如何以编程方式将“编辑”按钮添加到每个结果行? 我知道在aspx页面中设置datasource对象时如何执行此操作,但从未以编程方式执行此操作。

尝试这样做

<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>

尝试gridview的ItemTemplate并添加asp.net按钮,它将出现在所有行中。然后使用GRIDVIEW的Row_命令事件处理它的事件。一件奇怪的事是,我的前4-5列都变成了编辑链接。如何解决这个问题?我希望编辑列是gridview中的第一列。这是OnRowEditing的代码->
gvCheckResults.EditIndex=e.NewEditIndex;gvCheckResults.DataSource=dataContext.GetResults(名称、地址);gvCheckResults.DataBind()单击编辑按钮时发生的情况..显示gridview aspx代码行变为可编辑(标签变为文本框),单击更新时,
gridview“gvCheckResults”触发事件行更新时出错,未处理该事件这是有意义的,因为没有更新的方法。更新可以工作,但我必须修复的一件事是编辑链接,它在每次绑定后一直占据我的所有列。有关更新,请参阅初始问题。
<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>
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();
}