Asp.net AspxGridView:如何在DataItem模板按钮的Click事件上获取Keyfield或Spesific列的值?

Asp.net AspxGridView:如何在DataItem模板按钮的Click事件上获取Keyfield或Spesific列的值?,asp.net,aspxgridview,Asp.net,Aspxgridview,我有一个AspxGridView和一列的DataItem模板中的一个按钮。 我使用Button_Click event(按钮单击事件)来创建此按钮,当我单击此按钮时,我需要获取此事件中当前行的值。 AspxGridView的事件具有“e.Keys[]”或“e.KeyValue”等属性,但我找不到按钮事件参数的任何内容。 如何获取列或键值的值? 提前感谢。您也可以像这样使用Container.keyvalue方法: <dxwgv:GridViewDataTextColumn VisibleI

我有一个AspxGridView和一列的DataItem模板中的一个按钮。 我使用Button_Click event(按钮单击事件)来创建此按钮,当我单击此按钮时,我需要获取此事件中当前行的值。 AspxGridView的事件具有“e.Keys[]”或“e.KeyValue”等属性,但我找不到按钮事件参数的任何内容。 如何获取列或键值的值?
提前感谢。

您也可以像这样使用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>

此处在线示例:

您也可以像这样使用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>

此处在线示例: 有两种方法

  • 使用命令参数
  • ASP.NET

    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click" CommandArgument='<%# Eval("Id") %>' />
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click"/>
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    这种方式在使用过滤器时效果不佳

  • 第二种方法是使用GridViewDataItemTemplateContainer
  • ASP.NET

    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click" CommandArgument='<%# Eval("Id") %>' />
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click"/>
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    我认为第二种方法更好有两种方法

  • 使用命令参数
  • ASP.NET

    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click" CommandArgument='<%# Eval("Id") %>' />
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    <dx:GridViewDataTextColumn>
        <DataItemTemplate>
            <asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click"/>
        </DataItemTemplate>
    </dx:GridViewDataTextColumn>
    
    这种方式在使用过滤器时效果不佳

  • 第二种方法是使用GridViewDataItemTemplateContainer
  • ASP.NET

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

    我认为第二种方法更好

    我已经用CommandArgument完成了。谢谢。我已经用CommandArgument完成了。谢谢