我正在创建一个简单的Web应用程序
但我遇到一个问题,Gridview在列中显示数据库中的一些数据,我有另一个列,其中有一个按钮,我想调用存储过程。
但是,存储过程将另一列中相应数据的值作为输入,所以我的问题是如何访问该列的值并将其传递给相应buttonfield的动作侦听器?
答案 0 :(得分:1)
您可以将其设置为aspx页面中的Template字段,并将您想要的字段的值作为参数传递:
<asp:GridView ID="grd" OnRowCommand="grd_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btn" runat="server" Text="Click" CommandName="Click" CommandArgument='<%#Eval("FirstColumnFieldName") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后在你的代码中,你可以这样做:
protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Click":
{
string FirstColumnValue = e.CommandArgument.ToString();
hiddenfield.Value = FirstColumnValue;
break;
}
default:
break;
}
}
您可以找到更多解决方案here