我有一个AspxGridView和一列DataItem模板内的按钮。 我对此按钮使用Button_Click事件,当我单击此按钮时,我需要在此事件中获取当前行的值。 AspxGridView的事件'有'e.Keys []“或”e.KeyValue“等属性,但我找不到任何关于按钮EventArgs的东西。 如何获取列或KeyValue的值? 提前谢谢。
答案 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>
答案 1 :(得分:0)
有两种方式
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不能正常工作
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);
}
我认为第二种方式更好