GridView ASP.NET - передача команды и идентификатора выделенному коду - PullRequest
2 голосов
/ 28 января 2010

Как правильно передать команду и идентификатор Id (int) обратно к коду в ASP.NET. Я смотрю на CommandName и CommandArgument. Я читаю это неправильно, но я думаю, что CommandArgument возвращает индекс отображения. Как это помогает?

Не могу понять, как мне установить CommandArugment на нужный мне идентификатор.

Ответы [ 2 ]

4 голосов
/ 28 января 2010

Установите поля CommandName и CommandArgument в GridView, после чего вы сможете получить доступ к этим значениям в коде позади.

Допустим, у вас есть кнопка изображения в каждой строке, и когда пользователь выбирает кнопку, вы хотите получить доступ к имени команды и параметру для этой строки.

<asp:GridView ID="gvwRecords" runat="server" DataKeyNames="ID" DataSourceID="objRecords" OnRowCommand="gvwRecords_RowCommand">
  <Columns>
    <asp:TemplateField HeaderImageUrl="~/Images/Approve_Header_Dark.gif">
      <ItemTemplate>
         <asp:ImageButton runat="server" ID="btnApprove" %>' 
          CausesValidation="false" AlternateText="Approve record" ImageUrl="~/Images/Unapproved.gif" 
          CommandName="Approve" CommandArgument='<%# Eval("ID") %>' />
     </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

В коде позади:

protected void gvwRecords_RowCommand(object sender, GridViewCommandEventArgs e)
{
    int recordID = int.Parse(e.CommandArgument.ToString());
    if (recordID > 0)
    {
       switch (e.CommandName.ToLower())
       {
          case "sort":
             break;
          case "approve":
             Record.ApproveRecord(recordID);
             gvwRecords.DataBind();
             break;
           ...
       }
    }
}
1 голос
/ 28 января 2010

Вы можете получить DataItem, связанный с этим индексом, и получить из него любое нужное вам значение. Вот линик, показывающий некоторые способы сделать это ...

http://www.west -wind.com / Weblog / сообщений / 88462.aspx

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