【问题标题】:JavaScript functions prevent C# functions from being executed?JavaScript函数阻止C#函数被执行?
【发布时间】:2013-02-20 19:34:16
【问题描述】:

在我的 aspx 页面上,我有两个按钮。一个调用一些 javascript,另一个调用代码页上的 C# 函数。当我在文档头部调用 javascript 文件时,JavaScript 函数运行良好,但 C# 却不行。单击按钮不会执行任何操作。如果我删除 javascript 调用,则 C# 函数可以正常工作。

我该如何克服这个问题?似乎它希望在 JavaScript 文件中找到 C# 函数。

平均售价:

<head>
<script src="MyFunctions.js" language="javascript" type="text/javascript"></script>
</head>
<body>
<asp:Button id="btn1" Text="Submit" runat="server" OnClick="buttonSumbit_Click" />
<asp:Button id="btn2" Text="Show" runat="server" OnClientClick="buttonShow_Click()" />
</body>

C#:

protected void buttonSumbit_Click(object sender, EventArgs e)
{
//SOME CODE HERE
}

JavaScript:

function buttonShow_Click()
{
//SOME CODE HERE
}

【问题讨论】:

  • 如果一个调用javascript而另一个调用c#,你会同时点击这两个按钮吗!?
  • script 元素的 language 属性早已被弃用。
  • 您是否在这里遗漏了一些代码?或者这是 .aspx 页面中的总代码?
  • 我不会同时点击两个按钮。 javascript函数将div的显示属性从'hidden'设置为'block',C#函数将数据写入数据库。
  • 是的,缺少一些代码,例如

标签: c# javascript asp.net


【解决方案1】:

您需要将所有 Asp.Net 服务器控件放在 &lt;form runat="server"&gt;&lt;/form&gt; 标记内

【讨论】:

  • 所有控件都在
    标签内。当我没有将 JavaScript.js 文件链接到页面时,C# 函数可以完美运行。
【解决方案2】:

你需要修改你的javascript函数调用是这样的

<asp:Button id="btn2" Text="Show" runat="server" OnClientClick="return buttonShow_Click()" />

并确保您的 javascript 函数返回 true,以便回发(执行 C# 函数)发生。如果您的 javascript 函数返回 false,则不会回发到服务器。

【讨论】:

  • 我的 C# 函数仍然不可用。我尝试使用 javascript on-click 事件删除按钮。其他按钮仍然不起作用。它们仅在我删除该行时才起作用:&lt;script type="text/javascript" src="Javascript.js"&gt;&lt;/script&gt;
  • 如果可以,请分享您的 Javascript.js 文件吗?
【解决方案3】:

我建议你用它来调用javascript函数:

OnClientClick="if(!hidepopup())return false;"

您还可以从代码隐藏中调用 javascript 函数:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "jsfunction();", true);

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2011-01-15
    相关资源
    最近更新 更多