Как получить выделенный элемент в ASP.NET GridView - PullRequest
2 голосов
/ 16 июня 2011

Как получить выбранный элемент в обработчике SelectedIndexChanging при использовании двух команд SelectCommands?Я могу получить выбранную строку через e.SelectedRow, но не могу получить выбранный столбец.

Правильно ли иметь более одной команды SelectCommand в GridView?Если нет, то как лучше?

Ответы [ 2 ]

4 голосов
/ 16 июня 2011

Вы не выбираете столбец в сетке, вы выбираете строку. Если вы хотите, чтобы определенное поле строки было «выбираемым», вы можете рассмотреть возможность использования HyperLinkField или ButtonField и обработать события для этого. Но, насколько мне известно, по общему признанию, он ограничен, и невозможно с помощью GridView и его свойства SelectedRow узнать, какое поле в строке было «выбрано» при выборе строки.

3 голосов
/ 16 июня 2011

Вам не нужно использовать команды выбора. Вы можете использовать поля шаблона и добавить к нему именованную команду, затем вы можете проверить, какие из них были нажаты в событии 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());


                }


            }
...