使用两个SelectCommands时,如何在SelectedIndexChanging处理程序中获取所选项?我可以通过e.SelectedRow获取所选行,但我无法获取所选列。
在GridView中拥有多个SelectCommand是正确的吗?如果没有,最好的方法是什么?
答案 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());
}
}