I have an AspxGridView and a button inside of a DataItem Template of one column. I use Button_Click event for this button and I need to get values of current row in this event when I click on this button. AspxGridView's events' have "e.Keys[]" or "e.KeyValue" etc properties but I couldn't find anything for the button EventArgs. How can I get the values of columns or KeyValue? Thanks in advance.
Asked
Active
Viewed 1.2k times
1
-
1I've done it with CommandArgument. Thanks. – kubilay Jun 20 '11 at 19:51
2 Answers
1
You can also use the Container.keyvalue approach like this:
<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>
Sample online here: http://www.devexpress.com/Support/Center/e/E993.aspx

Mehul
- 848
- 4
- 13
0
there are two way
- use CommandArgument
ASP.NET
<dx:GridViewDataTextColumn>
<DataItemTemplate>
<asp:Button ID="btn_1" runat="server" OnClick="btn_1_Click" CommandArgument='<%# Eval("Id") %>' />
</DataItemTemplate>
</dx:GridViewDataTextColumn>
And in C#
protected void btn_1_Click(object sender, EventArgs e)
{
int Id = Convert.ToInt32((sender as Button).CommandArgument);
}
This way when you use Filter not work fine
- Second Way Use GridViewDataItemTemplateContainer
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);
}
i think second way is better

Farshad
- 1
- 2