gridview中的ASP.NET C#代码按钮

gridview中的ASP.NET C#代码按钮,c#,asp.net,visual-studio-2010,webforms,C#,Asp.net,Visual Studio 2010,Webforms,嗨,我有一个GridView(GridView1)我添加了一列并插入了一个按钮: <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" onselectedindexchanged="GridView1_SelectedIndexChanged"

嗨,我有一个GridView(GridView1)我添加了一列并插入了一个按钮:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
            onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px">
            <Columns>
                .....
                <asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" />
            </Columns>
        </asp:GridView>

但它什么也没做。基本上,我需要它来查看行,如果单击标记按钮,则将标记下的注释更新为“是”。

您将不会得到直接事件。您需要在RowCommand事件上编写代码

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName=="cmdFlag")
        {
        //Write code update database
    }
}
您还需要修改GridView控件。添加这样的事件

onrowcommand="GridView1_RowCommand"

如果您忘记在Gridview上添加
OnRowCommand=“GridView1\u RowCommand”
,您可以获得更多信息,这就是为什么它没有触发RowCommand事件的原因

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AllowPaging="True" 
        AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px">

通过执行以下操作,在代码隐藏文件中注册事件处理程序

GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);
并将此添加到您的aspx页面中

OnRowCommand="GridView1_RowCommand"

如果要添加ID以在
WHERE
语句中使用它,可以将其放入
CommandArgument
中,如

<asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" CommandArgument='<%# Eval("Comment_ID") %>' />

更新:刚刚更新了代码

Hiya谢谢我添加了它,但它没有做我想要的。你能再看一次我的帖子吗?我已经更新了更多信息。谢谢,mate,它现在做了一些事情,但是更新了所有的行。我想我需要一个WHERE语句,只是不知道如何写,关于行的位置,只有一些想法吗?如果有帮助的话,我有一个Comment_ID字段。您需要通过Row.Cells[]获取值,或者您可以执行find控件。您好,我添加了您放入的代码,但我得到了错误:诸如Eval()、XPath()和Bind()之类的数据绑定方法只能在数据绑定控件的上下文中使用。请尝试将CommandArgument=''替换为CommandArgument=“Comment_ID”
<asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" CommandArgument='<%# Eval("Comment_ID") %>' />
var id = e.CommandArgument.ToString();