c# 后台调用Jquery

yap111 2009-10-19 11:09:32
大家好!
疑问:我想在后台程序中调用Jquery函数。根据不同条件提示用户不同的信息。
为丰富弹出的样式,采用了Jquery 的dialog plugin 来Alert弹出信息。但是在
code-behind(用的c#)中不知道怎么写才能调用Jquery Function。
测试Respose.Write(Jquery Function)不行;
用ScriptManager.RegisteStartu...也不行。
请问谁帮帮我该怎么解决这个问题。
非常感谢!
...全文
3254 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowyelling 2012-08-31
  • 打赏
  • 举报
回复
Page.ClientScript.RegisterStartupScript(this.GetType(), "pop", "Fix()", true);

Fix() 是你的JQuery的方法!~

就这么简单 ;)
shadowyelling 2012-08-31
  • 打赏
  • 举报
回复
Page.ClientScript.RegisterStartupScript(this.GetType(), "pop", "Fix()", true);

Fix() 是你的JQuery的方法!~

就这么简单 ;)
shadowyelling 2012-08-15
  • 打赏
  • 举报
回复
jol_boy 哥哥说的是对的!我试过了!
fjn1234 2010-01-22
  • 打赏
  • 举报
回复
学习
yap111 2009-10-20
  • 打赏
  • 举报
回复
换其他方法,也是借助别人写的插件 Jquery Alert
谢谢各位!
wszhoho 2009-10-19
  • 打赏
  • 举报
回复
Page.ClientScript.RegisterStartupScript(this.GetType(), "","<script defer>jQuery函数名</script>");
SK_Aqi 2009-10-19
  • 打赏
  • 举报
回复
Respose.Write("<script>test();</script>");
不行?
ScriptManager也应该可以的
yap111 2009-10-19
  • 打赏
  • 举报
回复
多谢 wszhoho 提供的采用Boxy解决方案
但是还不太明白为什么
 Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script defer>$('#dialogWarning').dialog('open');</script>");

无效。
wszhoho 2009-10-19
  • 打赏
  • 举报
回复
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
string op = Request.QueryString["op"];
switch (op)
{
case "1":
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script defer>" + myalert("1") + "</script>");
break;
case "2":
break;
default: break;
}
}
private string myalert(string msg)
{
return "Boxy.alert(\"" + msg + "\",'',{title:\"提示\",modal:true,closeable:true});";
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script src="/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type='text/javascript' src='/js/jquery.boxy.js'></script>
<link rel="stylesheet" href="/css/boxy.css" type="text/css" />
<link href="/images/skin.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>


成功弹出消息提示,楼主试试。
jol_boy 2009-10-19
  • 打赏
  • 举报
回复
jqueryFun()这个方法在后台调用时是可以传参的,你传入1,2,3,如jqueryFun(‘1’);jqueryFun(‘2’);jqueryFun(‘3’);那么在前台的js中,就要写个case去判断
functuion jqueryFun(i)
{
switch(i)
{
case "1":
调用jq方法1
case "2":
调用jq方法1
case "3":
调用jq方法1


}
}
jol_boy 2009-10-19
  • 打赏
  • 举报
回复
这样子,至于jq的方法,你可以自己扩展,我就用了一个$("#d1").html()
测试没问题!lz弄清自己的需求,后台和前端是异步的!

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testJqFun.aspx.cs" Inherits="testJqFun" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" >
function jqueryFun() {
alert("我是被后台调用的");
alert("用jq获取div内容为:"+$("#d1").html());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="d1" style="display:none">
asdfasdf
</div>
</form>
</body>
</html>




using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class testJqFun : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//调用前台jq方法
Page.ClientScript.RegisterStartupScript(this.GetType(), "pop", "jqueryFun()",true);
}
}

yap111 2009-10-19
  • 打赏
  • 举报
回复
不知道谁没有理解B/S模式中后台程序与客户端脚本的关系。
我只知道 Nothing is impossible.
需求如我所述:恳请谁提供我解决方案。万分感谢。
Pig23 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wszhoho 的回复:]
服务器端程序运行期间直接运行客户端的js功能是不可能的,楼主确定搞清楚了“服务器端cs程序-客户端js脚本”的关系了么?
[/Quote]

这是正解,建议lz先了解b/s的运行机制
yap111 2009-10-19
  • 打赏
  • 举报
回复
问题还没有描述清楚?
在后台根据条件,在分支中调用客户端的Jquery 函数,类似这种:
switch(condition)
{
case "1":
Response.Write("<script language='javascript'>alert('1')</script>");
break;
case "2":
Response.Write("<script language='javascript'>alert('2')</script>");
break;
default:
Response.Write("<script language='javascript'>alert('2')</script>");
break;

}
为了界面更加好看,alert采用Jquery 的Dialog Plugin。即
Response.Write("<script language='javascript'>alert('2')</script>");
转换成调用Jquery Dialog Plugin 弹出窗体。而不是浏览器本身的那种原始样式。
liujintaozyc 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wszhoho 的回复:]
Page.ClientScript.RegisterStartupScript(this.GetType(), ""," <scriptdefer>jQuery函数名 </script>");

[/Quote]
wszhoho 2009-10-19
  • 打赏
  • 举报
回复
服务器端程序运行期间直接运行客户端的js功能是不可能的,楼主确定搞清楚了“服务器端cs程序-客户端js脚本”的关系了么?
tkscascor 2009-10-19
  • 打赏
  • 举报
回复
lz
具体说你的需求吧. 我很不理解..
yap111 2009-10-19
  • 打赏
  • 举报
回复
jol_boy :这种方式我尝试过,还是不行
caobob 2009-10-19
  • 打赏
  • 举报
回复
$.ready里写一个调用的方法test(),然后读取隐藏控件中的值,你后台设置这个隐藏控件的值。在每次页面加载时就可以加载你想要加载的方法了。
jol_boy 2009-10-19
  • 打赏
  • 举报
回复
后台如此写:Page.ClientScript.RegisterStartupScript(this.GetType(), "pop","jqueryFun()");

前台js这么写:
function jqueryFun()
{
这里调用你要的jq方法!
}


就可以实现后台调用前台js,前台js去调用jquery方法。
加载更多回复(2)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧