Получить текущую выбранную строку GridView по нажатию кнопки - PullRequest
1 голос
/ 27 января 2009

Я хочу получить DataKey выбранной строки GridView при нажатии кнопки.

Ответы [ 2 ]

2 голосов
/ 27 января 2009

Лично я бы сделал это в поле шаблона. Вот так:

    <asp:TemplateField>
     <ItemTemplate>
       //EDIT: after a comment it is suggested that you pass the RowIndex as the command argument which would provide access to the entire row
       <asp:LinkButton ID="btnCopy" runat="server"CausesValidation="False"CommandName="MyCommandButton"CommandArgument='<%# Eval("MyDataKeyOrWhateverIWanteverIWantFromTheBindingSource")%>'>
     </ItemTemplate>
    </asp:TemplateField>

CodeBehind

protect void MyCommandButton(Object sender,CommandArgument e)

{
    int DataKeyOrPK=int32.Parse(e.CommandArgument.ToString());
}

Ваш другой вариант будет:

<asp:gridview id="myGrid" runat="server"
      width=100% datakeynames="Myid"
      autogeneratecolumns=false
      onSelectedIndexChanged="MyEvent">


<asp:templatefield headertext="Choose your dream home">
 <itemtemplate>
  <asp:linkbutton runat="server" commandname="select" text='<%# Eval ( "Whatever" ) %>' />
 </itemtemplate>
</asp:templatefield>

Обратите внимание на имя команды = "выберите" выше.

Элементы управления с привязкой к данным распознают определенные имена команд и автоматически генерируют и обрабатывают соответствующие события для элемента управления. Следующие имена команд распознаются: Отмена, удаление, редактирование, вставка, новая, страница, выбор, сортировка и обновление . Ссылки

Codebehind

private void MyEvent(Object sender, EventArgs e) 
{
   string id = myGrid.SelectedDataKey.Value.ToString();
}
0 голосов
/ 27 января 2009

Используйте свойство SelectedDataKey GridView:

DataKey currentKey = myGridView.SelectedDataKey;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...