如何在ASP.NET GridView中获取所选项目

时间:2011-06-15 23:17:36

标签: asp.net gridview selecteditem selectedindexchanged selectcommand

使用两个SelectCommands时,如何在SelectedIndexChanging处理程序中获取所选项?我可以通过e.SelectedRow获取所选行,但我无法获取所选列。

在GridView中拥有多个SelectCommand是正确的吗?如果没有,最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

您不选择网格视图中的列,而是选择一行。如果您希望某行的特定字段为“可选”,则可以考虑使用HyperLinkField或ButtonField并为其处理事件。但据我所知,诚然,它是有限的,没有办法能够知道,纯粹使用GridView及其SelectedRow属性,当选择行时,行中的哪个字段被“选中”。

答案 1 :(得分:3)

您不必使用select命令。您可以使用模板字段并向其添加命名命令,然后您可以检查在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());


                }


            }