c# – GridView ButtonField后面的命令

我对GridView中ButtonField(图像类型)背后的命令有疑问.

得到了一个名为gvIngevuld的GridView,它显示了数据行和1个ButtonField行.
现在我必须将代码放在这些按钮后面(每个按钮都相同)以放置一些PDF格式的东西.
问题是我不知道如何将代码放在这些按钮后面?
我的代码

<asp:ButtonField ButtonType="Image" ImageUrl="~/Images/pdf.png"  CommandName="pdf_click" />

正如您所看到的,我使用了CommandName =“pdf_click”属性,但是当我单击其中一个按钮时,只有一个回发但没有任何反应.
谁可以帮助我在这里?

如果需要,代码背后:

protected void pdf_click(object sender,EventArgs e)
{
    lblWelkom.Text = "Succes!";
}

谢谢.

解决方法

您应该使用gridview的RowCommand事件.将commandArgument设置为项目的唯一键. (默认情况下,它传递行的索引)
void gvIngevuld_RowCommand(Object sender,GridViewCommandEventArgs e)
 {
 // If multiple buttons are used in a GridView control,use the
 // CommandName property to determine which button was clicked.
 if(e.CommandName=="pdf_click")
  {
   // Convert the row index stored in the CommandArgument
   // property to an Integer.
   int index = Convert.ToInt32(e.CommandArgument);

   // Retrieve the row that contains the button clicked 
   // by the user from the Rows collection.
   GridViewRow row = gvIngevuld.Rows[index]; 
   //gbIngevuld is your GridView's name

   // Now you have access to the gridviewrow.
  }  
}

此外,如果已设置gridview的DataKeyNames,则可以按如下方式访问它:

int index = Convert.ToInt32(e.CommandArgument);
    int ServerID = Convert.ToInt32(GridView1.DataKeys[index].Value);

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString(&quot;x2&quot;));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable&lt;Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include &quot;WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...