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

如何在ASP.NET GridView中获取选定项,asp.net,gridview,selecteditem,selectedindexchanged,selectcommand,Asp.net,Gridview,Selecteditem,Selectedindexchanged,Selectcommand,使用两个SelectedIndex命令时,如何在SelectedIndex更改处理程序上获取所选项目?我可以通过e.SelectedRow获取所选行,但无法获取所选列 在GridView中有多个SelectCommand是否正确?如果没有,最好的方法是什么?如果不在gridview中选择列,则选择行。如果希望某行的特定字段为“可选”,则可以考虑使用HyrLink字段或ButnFieldand处理事件。但据我所知,无可否认,它是有限的,仅仅通过GridView及其SelectedRow属性无法知道

使用两个SelectedIndex命令时,如何在SelectedIndex更改处理程序上获取所选项目?我可以通过e.SelectedRow获取所选行,但无法获取所选列


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

如果不在gridview中选择列,则选择行。如果希望某行的特定字段为“可选”,则可以考虑使用HyrLink字段或ButnFieldand处理事件。但据我所知,无可否认,它是有限的,仅仅通过GridView及其SelectedRow属性无法知道选中行时行中的哪个字段被“选中”。

您不必使用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>
 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if(e.CommandName.Equals("MyCommand"))
                {
                    int row = Int32.Parse(e.CommandArgument.ToString());


                }


            }