ASP.. NET c#代码按钮在gridview
本文关键字:gridview 按钮 代码 NET ASP | 更新日期: 2023-09-27 17:49:02
大家好,我有一个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>
基本上点击按钮,我想运行SQL更新,但似乎不能点击按钮进入c#并添加查询。我可以在c#中找到页面,但不确定该为方法写什么。
下面是c#代码:
void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "cmdFlag")
{
con.Open();
cmd = new SqlCommand("UPDATE Comments SET Flagged = '" + "Yes" + "'", con);
cmd.ExecuteNonQuery();
}
}
它什么也没做。基本上,我需要它来查看行,如果标记按钮被单击,则将标记下的评论更新为"Yes"。
您不会获得直接事件。您需要在RowCommand事件上编写代码。
void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if(e.CommandName=="cmdFlag")
{
//Write code update database
}
}
你还需要修改GridView控件。像这样添加事件。
onrowcommand="GridView1_RowCommand"
你可以在这里获得更多信息
如果您想添加ID以在WHERE
语句中使用它,您可以将其放入CommandArgument
中,如
<asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" CommandArgument='<%# Eval("Comment_ID") %>' />
那么在代码中你可以从
得到它var id = e.CommandArgument.ToString();
更新:刚刚更新了代码
通过以下操作在代码隐藏文件中注册事件处理程序
GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);
并添加到你的aspx页面
OnRowCommand="GridView1_RowCommand"
您忘记在Gridview上添加OnRowCommand="GridView1_RowCommand"
,这就是为什么它没有触发RowCommand事件。
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AllowPaging="True"
AutoGenerateColumns="False" DataSourceID="ObjectDataSource2"
onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px">