【问题标题】:HTML tag:label with onclick asp.net method.HTML 标签:带有 onclick asp.net 方法的标签。
【发布时间】:2014-04-25 02:54:02
【问题描述】:

我有这个表格:

    <form id="form21" runat="server" method="post" onsubmit="return send()">
          <asp:Button runat="server"  ID="submit" name="submit" type="submit" class="btn btn-send" Text="עדכן" onclick="submit_Click" />
          <label ID="other" name="other" runat="server" class="btn btn-send" onclick="other_Click" Visible="False">נהל משתמש אחר</label>
    </form>

当我单击标签时,会出现此错误:“JavaScript 运行时错误:'other_Click' 未定义”。

asp.net方法和HTML标签如何结合?

【问题讨论】:

  • other_Click 在哪里定义?标签不处理服务器端的点击...不确定您是尝试在客户端还是服务器端处理它。
  • 不完全确定你在问什么。你能发布你的Javascript代码吗?如果缺少other_Click 方法,则会出现此错误。
  • other_Click 在 aspx.cs 页面中。有这个名字的方法。那么在其他方面,我怎样才能控制只有一个按钮会执行 onsubmit="return send();"?
  • 如果您有新问题,请提出新问题。不要将现有问题编辑成完全不同的问题。

标签: c# javascript html asp.net forms


【解决方案1】:

从服务器的角度来看,这是:

<label ID="other" name="other" runat="server" ...

HtmlGenericControl 类的一个实例。该类及其大部分子类没有服务器端点击事件。因此,您定义的 onclick 不被视为服务器端订阅,因此按原样呈现到 HTML 中。所以在最后一页上这只是一个 JavaScript 函数调用。而且由于您在客户端没有此类功能,因此您会收到错误消息。

要解决这个问题,您可能需要切换到一些具有服务端 Click 事件的服务器端控件。例如LinkButton,虽然它需要一些 css 才能看起来像标签。另一种选择是在客户端自己生成回发,但这有点不寻常。

【讨论】:

  • Deos 就像提交按钮一样?
  • @ofir2471,链接按钮?是的,在某种意义上。基本上,您在 ASP.NET 中使用的任何服务器端控件都会提交整个表单,因此可以说它们都像提交按钮一样
  • 我不希望这个按钮/标签使用 onsubmit="return send()"。
  • @ofir2471,但您仍希望在服务器上处理您的点击?这是有争议的。如果您想要服务器端事件 - 将为它提交表单,这就是 ASP.NET 的工作方式。所以我想你需要先了解你想要实现的目标
  • 是的,该方法从我的数据库中加载数据
【解决方案2】:

你应该定义你想要做什么,点击是为了显示或执行一项任务还是你想执行到服务器端..

要通过点击执行一项任务而不是调用服务器,你应该定义函数javascript并调用

要使用 click 事件执行对服务器的调用,您应该使用 wcf ajax 来调用服务器..

或许这对你有帮助

http://www.morgantechspace.com/2014/01/Call-Server-Side-function-from-JavaScript-in-ASP-NET.html

【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2013-08-08
    • 2011-01-15
    • 1970-01-01
    • 2012-10-27
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多