【问题标题】:GridView ASP.NET - passing a command and a ID to the code-behindGridView ASP.NET - 将命令和 ID 传递给代码隐藏
【发布时间】:2011-01-10 14:12:34
【问题描述】:

将命令和身份 ID (int) 传递回 ASP.NET 中的代码的正确方法是什么。我正在查看 CommandName 和 CommandArgument。我读错了吗,但我认为 CommandArgument 传回了显示索引。这有什么帮助?

不知道如何将 CommandArugment 设置为我需要的 ID。

【问题讨论】:

    标签: .net asp.net gridview


    【解决方案1】:

    您可以获取与该索引关联的 DataItem 并从中获取您需要的任何值。 这是一个链接,显示了一些方法来做到这一点......

    http://www.west-wind.com/Weblog/posts/88462.aspx

    【讨论】:

    • 好消息。我也喜欢这种方法。 +1
    【解决方案2】:

    在 GridView 中设置 CommandNameCommandArgument 字段,然后您可以在后面的代码中访问这些值。

    假设您在每一行都有一个图像按钮,当用户选择按钮时,您要访问该行的命令名称和参数。

    <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;
               ...
           }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 2018-12-23
      相关资源
      最近更新 更多