从服务器调用jQuery函数(在Updatepanel中)
本文关键字:Updatepanel 函数 服务器 调用 jQuery | 更新日期: 2023-09-27 18:00:44
我想从服务器调用jQuery函数
调用函数的服务器端按钮位于UpdatePanel内部
这是服务器端的功能:
//Button Click handler (It is inside Updatepanel)
string ScriptName = null;
ScriptName = "function pageLoad(sender, args) { if (args.get_isPartialLoad()) {DisplayMessage(); }}";
ScriptManager.RegisterStartupScript(this, GetType(), "DisplayMessage", ScriptName, true);
这是客户端功能:
<script type="text/javascript">
function DisplayMessage() {
//Alert("Called");
}
</script>
它不起作用
怎么了?(我的问题清楚吗?)
这很奇怪,因为以下对我来说非常好:
<%@ Page Language="C#" %>
<script type="text/c#" runat="server">
protected void BtnTrigger_Click(object sender, EventArgs e)
{
string script = "function pageLoad(sender, args) { if (args.get_isPartialLoad()) {DisplayMessage(); }}";
ScriptManager.RegisterStartupScript(
this,
GetType(),
"DisplayMEssage",
script,
true
);
}
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function DisplayMessage() {
alert('called');
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<asp:ScriptManager ID="scm" runat="server" />
<asp:LinkButton
ID="BtnTrigger"
runat="server"
Text="Trigger"
OnClick="BtnTrigger_Click"
/>
<asp:UpdatePanel ID="up" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="BtnTrigger"
EventName="Click"
/>
</Triggers>
</asp:UpdatePanel>
</form>
</body>
</html>
同样,你真的需要所有复杂的脚本吗?为什么不简单地使用string script = "DisplayMessage();";
呢?
在页面中创建一个display:nonediv。将其放在更新面板中。这不会干扰你的设计。执行页面中的每个客户端脚本
<div id="scriptContainer" runat="server" style="display:none;"></div>
然后把你的js粘贴到一个事件上。
scriptContainer.innerHTML = "<script type=text/javascript>DisplayMessage();</script>";
希望能有所帮助。