AspxGridView:如何在DataItem模板按钮的Click事件中获取特定列的键字段值?

时间:2011-06-20 19:32:32

标签: asp.net aspxgridview

我有一个AspxGridView和一列DataItem模板内的按钮。 我对此按钮使用Button_Click事件,当我单击此按钮时,我需要在此事件中获取当前行的值。 AspxGridView的事件'有'e.Keys []“或”e.KeyValue“等属性,但我找不到任何关于按钮EventArgs的东西。 如何获取列或KeyValue的值? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

你也可以像这样使用Container.keyvalue方法:

<dxwgv:GridViewDataTextColumn VisibleIndex="3" Caption="Simple Hyperlink Column">
    <DataItemTemplate>
        <a id="clickElement" target="_blank" href="Default2.aspx?id=<%# Container.KeyValue%>"><%# "Show New Form, Key Field = " + Eval("CategoryID").ToString()%></a>
    </DataItemTemplate>
</dxwgv:GridViewDataTextColumn>

在线示例: http://www.devexpress.com/Support/Center/e/E993.aspx

答案 1 :(得分:0)

有两种方式

  1. 使用CommandArgument
  2. ASP.NET

    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click" CommandArgument='<%# Eval("Id") %>' />
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    

    在C#中

    protected void btn_1_Click(object sender, EventArgs e)
        {
                int Id = Convert.ToInt32((sender as Button).CommandArgument);
        }
    

    这种方式当你使用Filter不能正常工作

    1. 第二种方式使用GridViewDataItemTemplateContainer
    2. ASP.NET

      <dx:GridViewDataTextColumn>
          <DataItemTemplate>
              <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click"/>
          </DataItemTemplate>
      </dx:GridViewDataTextColumn>
      

      C#

       protected void btn_1_Click(object sender, EventArgs e)
       {
           int Device_Id = Convert.ToInt32(((sender as Button).Parent as   devExpress.Web.GridViewDataItemTemplateContainer).KeyValue);
       }
      

      我认为第二种方式更好