我正在visualstudio2012中使用asp.net,c#制作一个网站。我创建了一个网格视图,它从我的sql server中获取数据,并创建了绑定到id_p的按钮字段,id_p是从数据库中获取的collmn之一。我正在尝试获取单击按钮所在行的id_p的数据。
<asp:ButtonField ButtonType="Button" DataTextField="id_p"
DataTextFormatString="Stavi u košaricu" Text="Button1" />
我需要的不是选定的行,而是id_p值,所以我该怎么做呢?
您需要按如下方式处理网格视图上的OnRowCommand
事件:
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView_RowCommand"
并创建ItemTemplateField以显示常规<asp:button>
,而不是使用ButtonField
列:
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btn" runat="server"
CommandName="Something" CommandArgument='<%#Eval("id_p") %>'
Text="Stavi u košaricu" />
</ItemTemplate>
</asp:TemplateField>
现在您处理RowCommand事件:
protected void GridView_RowCommand(Object sender, GridViewCommandEventArgs e)
{
string m_id = e.CommandArgument.ToString();
if (e.CommandName == "Something")
{
//do something with m_id
}
}