基本上,我试图从网格视图中的链接按钮将这个int传递给一个函数。
这是我正在做的自动取款机,但我收到了一个错误。我整个早上都被困在这上面..。
谢谢你的帮助。
这是密码。
<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>
发布于 2014-02-26 05:07:22
因为它是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;
}
最后,您需要用函数的名称在您的onrowcommand
中添加GridView属性。
<asp:GridView ID="GridView1" onrowcommand="GridView1_RowCommand">
</asp:GridView>
您可以查看这里 --一个简单的教程--不知道如何在GridView
中使用RowCommand
事件。
发布于 2014-02-26 04:50:10
如果您为web开发,您可以使用查询字符串或会话作为替代。
发布于 2014-02-26 04:53:03
Gawd webforms糟透了。
尝试使用CommandArgument属性的LinkButton。看看怎么用它。
实际上,您不应该调用OnClick属性中的方法,即lnkAttachment_Click(stuff)。您应该指定事件处理程序的名称,仅此而已,所以lnkAttachment_Click。
实际上,去他的。只需使用普通链接并设置您自己的所有属性。使用数据某类html5属性来存储整数,并从客户端单击处理程序调用回发。尽量避免使用WebForms控件,因为它只会使好的、现代的web开发更加困难。
https://stackoverflow.com/questions/22041387
复制相似问题