深夜加班,为js 调用后台C#带参数函数,求高手相助!解决办法
深夜加班,为js 调用后台C#带参数函数,求高手相助!!!!!!
.ASPX文件
function Button4_onclick() {
var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText;
var a = "<%=LoadTopMenu(b)%>";
alert(a);
}
.CS文件
public string LoadTopMenu(string str)
{
return str+"!!!!!!!!";
}
调用失败~
不带参数的话,没问题,一带参数就不知道怎么回事了~
------解决方案--------------------
如果不行 你可以换一个方式啊
function Button4_onclick() {
//var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText; //值是哪来的,可以直接放在后台吧。
var a = " <%=LoadTopMenu()%>";
alert(a);
}
.CS文件
public string LoadTopMenu()
{ //此处操作b吧
return str+"!!!!!!!!";
}
------解决方案--------------------
我是这样写的:
aspx:
<script type="text/javascript">
var newplurl="<%=Get_new_pl_url() %>";
</script>
cs:
protected string Get_new_pl_url()
{
return "blog_pl_add.aspx?BlogID=";
}
==================================================
你可以参考改一下。
------解决方案--------------------
<%=LoadTopMenu(b)%> 这里写是有问题的,
如果不好实现的话, 可以换个角度来解决,比如:
.ASPX文件
function Button4_onclick()
{
// 调用CS中的Button1事件,Button1的width设为0,这样就可以隐藏起来,
// 但如果将Visible设为false的话,Button1的事件就不会触发.
document.all('Button1').click();
}
.CS文件
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('" + MsgManagement_SendMsg1_Label1.Text + "!!!!!!!!');</script>");
}
------解决方案--------------------
找了下 <%%>里面的都是后台代码 这个执行在你点击之前 也就是说你没点击 实际上这个方法已经执行过一次了 至于这个<%%>里面的JS参数是不能解析的。
所以要找个变通的方法 13楼的思路是对的 你的这个JS函数可以什么都不写 在后代的alert 。。。
------解决方案--------------------
.ASPX文件
function Button4_onclick() {
var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText;
var a = "<%=LoadTopMenu(b)%>";
alert(a);
}
.CS文件
public string LoadTopMenu(string str)
{
return str+"!!!!!!!!";
}
调用失败~
不带参数的话,没问题,一带参数就不知道怎么回事了~
------解决方案--------------------
如果不行 你可以换一个方式啊
function Button4_onclick() {
//var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText; //值是哪来的,可以直接放在后台吧。
var a = " <%=LoadTopMenu()%>";
alert(a);
}
.CS文件
public string LoadTopMenu()
{ //此处操作b吧
return str+"!!!!!!!!";
}
------解决方案--------------------
我是这样写的:
aspx:
<script type="text/javascript">
var newplurl="<%=Get_new_pl_url() %>";
</script>
cs:
protected string Get_new_pl_url()
{
return "blog_pl_add.aspx?BlogID=";
}
==================================================
你可以参考改一下。
------解决方案--------------------
<%=LoadTopMenu(b)%> 这里写是有问题的,
如果不好实现的话, 可以换个角度来解决,比如:
.ASPX文件
function Button4_onclick()
{
// 调用CS中的Button1事件,Button1的width设为0,这样就可以隐藏起来,
// 但如果将Visible设为false的话,Button1的事件就不会触发.
document.all('Button1').click();
}
.CS文件
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('" + MsgManagement_SendMsg1_Label1.Text + "!!!!!!!!');</script>");
}
------解决方案--------------------
找了下 <%%>里面的都是后台代码 这个执行在你点击之前 也就是说你没点击 实际上这个方法已经执行过一次了 至于这个<%%>里面的JS参数是不能解析的。
所以要找个变通的方法 13楼的思路是对的 你的这个JS函数可以什么都不写 在后代的alert 。。。
------解决方案--------------------
- C# code
function Button4_onclick() { <% string b = MsgManagement_SendMsg1_Label1.Text ;%> var a = "<%=LoadTopMenu(b) %>"; alert(a); }
------解决方案--------------------
<%%>是解析的后台代码,建议用后台脚本输出
------解决方案--------------------
试试将该参数付给一个隐藏控件的值,然后获取控件的值试试
------解决方案--------------------
------解决方案--------------------
前后台结合可以有多种方式
你的问题是没有理解<%%>是在服务器端做解析的.
------解决方案--------------------
建议还是用ajax
微软已经提供了ajax 框架 可以用来处理前台和后台交互的问题
利用 WebForm_DoCallBack();去调用服务器的代码 还可以取得返回值。
具体的参考 WebForm_DoCallBack的用法!
------解决方案--------------------