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事件。将命令参数设置为项目的唯一键。(默认情况下,它传递行的索引)

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.
  }  
}   

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

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

只是一个补充,我编写并尝试了完全相同的方法,但是按钮仍然不起作用......

。过了一段时间,我才意识到我忘记了一件事,那就是 OnRowCommand="<YourGridViewName>_RowCommand"在 **.cs* 文件中的 GridView 元素内

属性不定义要调用的方法。为此,您需要创建一个绑定到控件的命令事件的方法。
恐怕我对 GridView 不太了解,但我认为最简单的方法是在 Visual Studio 的设计视图中选择它,转到属性,单击事件按钮(看起来像闪电)并双击 RowCommand 事件属性。这应该会自动创建一个绑定到命令按钮事件的方法。
然后,可以使用 GridViewCommandEventArgs 参数访问 CommandName、CommandArgument 和 CommandSource 属性,以确定导致事件触发的按钮。

相关内容

  • 没有找到相关文章

最新更新