使用两个 SelectCommand 时,如何在 SelectedIndexChanging 处理程序上获取所选项目?我可以通过 e.SelectedRow 获取选定的行,但无法获取选定的列。
GridView 中有多个 SelectCommand 是否正确?如果没有,最好的方法是什么?
使用两个 SelectCommand 时,如何在 SelectedIndexChanging 处理程序上获取所选项目?我可以通过 e.SelectedRow 获取选定的行,但无法获取选定的列。
GridView 中有多个 SelectCommand 是否正确?如果没有,最好的方法是什么?
您不选择网格视图中的列,而是选择一行。如果您希望行的特定字段是“可选择的”,您可以考虑使用 HyperLinkField 或 ButtonField 并为此处理事件。但据我所知,诚然它是有限的,纯粹通过 GridView 及其 SelectedRow 属性无法知道在选择行时该行中的哪个字段被“选中”。
您不必使用选择命令。您可以使用模板字段并向其添加命名命令,然后您可以检查在 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());
}
}