日期:2014-05-18  浏览次数:20553 次

深夜加班,为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 。。。
------解决方案--------------------
C# code

      function Button4_onclick() {
      <% string b = MsgManagement_SendMsg1_Label1.Text ;%>
      var  a  = "<%=LoadTopMenu(b) %>";
      alert(a); 
     }

------解决方案--------------------
<%%>是解析的后台代码,建议用后台脚本输出
------解决方案--------------------
试试将该参数付给一个隐藏控件的值,然后获取控件的值试试
------解决方案--------------------
引用楼主 tlzjff 的帖子:
.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+"!!!!!!!!";
}

调用失败~
不带参数的话,没问题,一带参数就不知道怎么回事了~

------解决方案--------------------
前后台结合可以有多种方式
你的问题是没有理解<%%>是在服务器端做解析的.
------解决方案--------------------
建议还是用ajax 
微软已经提供了ajax 框架 可以用来处理前台和后台交互的问题
利用 WebForm_DoCallBack();去调用服务器的代码 还可以取得返回值。
具体的参考 WebForm_DoCallBack的用法!
------解决方案--------------------