您好,我有一个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 Update,但似乎不能单击按钮进入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“。
发布于 2011-04-06 17:30:18
你不会得到一个直接的事件。您需要在RowCommand事件上编写代码。
void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if(e.CommandName=="cmdFlag")
{
//Write code update database
}
}
此外,您还需要修改GridView控件。像这样添加事件。
onrowcommand="GridView1_RowCommand"
你可以在here上获得更多信息
发布于 2011-04-06 18:00:04
您忘记了在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">
发布于 2011-04-06 18:08:57
通过执行以下操作在代码隐藏文件中注册事件处理程序
GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);
并将此添加到您的aspx页面中
OnRowCommand="GridView1_RowCommand"
https://stackoverflow.com/questions/5564165
复制相似问题