我希望能够在我的gridview中选择一个或多个行,以便能够将多个行数据存储在一个对象中,然后对对象列表执行所需的任何操作。
在ASP代码中,我有一个标准的gridview和一个带有ItemTemplate的TemplateField(已放置按钮)。命令名称为Switch
(与C#相关)。下面是我的templateField代码(我已经尝试过AutoPostBack="False"
,在这种情况下不起作用)
<asp:TemplateField>
<ItemTemplate>
<asp:Button CssClass="buttonStuff" Text="Switch" runat="server" CommandName="Switch" CommandArgument="<%# Container.DataItemIndex %>" AutoPostBack="False" />
</ItemTemplate>
</asp:TemplateField>
现在在任何行上单击Switch
按钮时,我们将获取正确的行索引并在C#中获取我们的值,下面的代码:
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Switch")
{
//Determine the RowIndex of the Row whose Button was clicked.
int rowIndex = Convert.ToInt32(e.CommandArgument);
//Reference the GridView Row.
GridViewRow row = GridView2.Rows[rowIndex];
//Perform what needs to do done
}
}
现在,我已经获取了正确的值,并且可以为单击一次按钮做我需要做的事情,但是问题是,我不能只选择多行,而只能选择一行,因为当我单击按钮时页面会不断触发一次。
我相信,在这种情况下,我希望禁用此自动回发功能,并手动将其添加。
任何建议将不胜感激,谢谢
我通过使用复选框找到了解决问题的好方法,下面的链接是我使用的链接。
https://www.c-sharpcorner.com/UploadFile/009464/use-checkbox-inside-gridview-in-Asp-Net/