![](/img/trans.png)
[英]LinkButton.Click event not firing when dynamically attached in GridView row databound
[英]Passing a databound int in a gridview to a function via an on click event in the grid
基本上,我试图将此int从网格视图中的链接按钮传递给函数
这是我正在做的atm,但是我收到一个错误..我整个上午都被困在里面。
谢谢你的帮助。
这是代码。
<asp:LinkButton runat="server" id="lnkAttachment"
ToolTip="<%$ Resources:DocumentsContent, Viewdocument%>"
Visible='<%# (int)DataBinder.Eval(Container.DataItem, "DOCUMENT_ID") > 0 %>'
OnClientClick="aspnetForm.target ='_blank'; setDownloadDoc();"
OnClick='lnkAttachment_Click(<%#(int)DataBinder.Eval(Container.DataItem, "DOCUMENT_ID")%>)'>
<asp:Image ID="imgSelect0" runat="server" src="../Images/IconEdit.gif" border="0" alt="<%$ Resources:DocumentsContent, Select%>" />
</asp:LinkButton>
如果您是为Web开发的,则可以使用查询字符串或会话作为替代。
Gawd webforms很烂。
尝试使用LinkButton的CommandArgument属性。 查找如何使用它。
您并不是要实际上在OnClick属性中调用方法,即lnkAttachment_Click(stuff)。 您只需要指定事件处理程序的名称,仅此而已,所以lnkAttachment_Click。
实际上,拧紧它。 只需使用普通的<a>链接并设置所有自己的属性即可。 使用data-something html5属性存储您的整数,并从客户端单击处理程序调用回发。 尽可能避免使用WebForms控件,因为它会使良好的现代Web开发更加困难。
就像David所说的那样,尝试将commandArgument添加到您的Link中:
CommandArgument='<%# Container.DataItemIndex %>'
然后在后面的代码中,也许得到这样的值?
string Value = GridView2.Rows[Convert.ToInt32(((LinkButton)sender).CommandArgument.ToString())].Cells[0].Text;
然后,我使用了ResponseRedirects和Query字符串。 传递价值。
希望这会有所帮助。
由于它是GridView中的一个asp控件,因此需要将一个Command
设置为LinkButton。 您不能使用OnClick
属性。
<asp:LinkButton runat="server" id="lnkAttachment"
ToolTip="<%$ Resources:DocumentsContent, Viewdocument%>"
Visible='<%# (int)DataBinder.Eval(Container.DataItem, "DOCUMENT_ID") > 0 %>'
OnClientClick="aspnetForm.target ='_blank'; setDownloadDoc();"
CommandName="lnkAttachmentClick"
CommandValue='<%#(int)DataBinder.Eval(Container.DataItem, "DOCUMENT_ID")%>'>
<asp:Image ID="imgSelect0" runat="server" src="../Images/IconEdit.gif" border="0" alt="<%$ Resources:DocumentsContent, Select%>" />
</asp:LinkButton>
后面的代码如下:
private void GridView1_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
switch (e.CommandName) {
case "lnkAttachmentClick":
int document_id = (int)e.CommandArgument;
// Write your code here
break;
}
最后,您需要在GridView中添加带有函数名称的onrowcommand
属性。
<asp:GridView ID="GridView1" onrowcommand="GridView1_RowCommand">
</asp:GridView>
您可以在此处查看一个简单的教程,其中没有有关如何在GridView
使用RowCommand
事件的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.