【问题标题】:linkbutton onclick event not firing in asp net链接按钮 onclick 事件未在 asp 网络中触发
【发布时间】:2017-04-26 11:30:45
【问题描述】:

我知道这是一个重复的问题,但情况似乎有所不同。 我的 aspx 页面上有一个链接按钮,其事件 protected void LinkButton1_Click(object sender, EventArgs e) 没有触发

 <form>
   <asp:LinkButton ID="LinkButton1" OnClick="LinkButton1_Click" causesvalidation="false"><a href="Product.aspx?id=<%#Eval("ItemCode") %>">LinkButton</a></asp:LinkButton>
 </form>

这里&lt;asp:LinkButton 有一个绿色下划线表示Element 'asp:LinkButton' is missing required attribute 'runat' 当我把 runat="Server" 它给了我错误:

“LinkBut​​ton”类型的控件“Repeater1_LinkBut​​ton1_0”必须放在带有 runat=server 的表单标签内。

当我输入&lt;Form runat="Server"&gt; 时,它给了我

一个页面只能有一个服务器端表单标签。

我不确定这是否会造成问题。请帮忙

【问题讨论】:

  • 您的 aspx 页面或母版页中可能已经定义了一个
  • 我没有母版页,我在寻找
    但它没有

标签: c# asp.net


【解决方案1】:

从 cmets 回答您的问题。

<asp:LinkButton ID="LinkButton1" runat="server" OnCommand="yourCommand" CommandName="AddToCart" CommandArgument='<%#Eval("itemID")%>'>Click here</asp:LinkButton>

在你的代码隐藏中:

protected void yourCommand(object sender, CommandEventArgs e)
{
    int myID = int.Parse(e.CommandArgument.ToString());
}

【讨论】:

  • 如果我使用 runat="Server" 它会给出同样的错误Control 'Repeater1_LinkButton1_0' of type 'LinkButton' must be placed inside a form tag with runat=server.
  • 对错误进行了排序,但又没有触发LinkButton1_Command
  • 我通过在 Body Tag 下方放置 &lt;form id="form1" runat="server"&gt; 解决了它,并使用您的方法获取数据,一切正常。谢谢
【解决方案2】:

我可以知道你为什么在链接按钮标签内放置一个参考标签(href)。 我认为这是不对的, 试试这个,

 <asp:LinkButton ID="LinkButton1" OnClick="LinkButton1_Click" runat="server" causesvalidation="false"></asp:LinkButton>

【讨论】:

  • 我有这个查询字符串的href,这样我就可以将点击的项目保存在cookies中
  • 我如何获得 itemID ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多