2

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

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

4

2 回答 2

4

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

于 2011-06-15T23:29:38.333 回答
3

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


                }


            }
于 2011-06-15T23:52:25.210 回答