【问题标题】:How to get selected item in ASP.NET GridView如何在 ASP.NET GridView 中获取所选项目
【发布时间】:2011-09-15 23:19:44
【问题描述】:
当使用两个 SelectCommand 时,如何在 SelectedIndexChanging 处理程序上获取选定项?我可以通过 e.SelectedRow 获取选定的行,但无法获取选定的列。
GridView 中有多个 SelectCommand 是否正确?如果没有,最好的方法是什么?
【问题讨论】:
标签:
asp.net
gridview
selecteditem
selectedindexchanged
selectcommand
【解决方案1】:
您不是在网格视图中选择一列,而是选择一行。如果您希望行的特定字段是“可选择的”,您可以考虑使用 HyperLinkField 或 ButtonField 并为此处理事件。但据我所知,诚然它是有限的,纯粹通过 GridView 及其 SelectedRow 属性无法知道在选择行时该行中的哪个字段被“选中”。
【解决方案2】:
您不必使用选择命令。您可以使用模板字段并向其添加命名命令,然后您可以检查在 RowCommand 事件中单击了哪些(您也可以获取行索引)见下文。
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="MyCommand" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
下方的 RowCommend 事件
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("MyCommand"))
{
int row = Int32.Parse(e.CommandArgument.ToString());
}
}