读书人

深夜加班为js 调用后台C#带参数函数

发布时间: 2012-04-25 19:32:32 作者: rapoo

深夜加班,为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的用法!
------解决方案--------------------


js实在前台执行的 这个时候后台代码已经给出了执行的值了

另外 " <%=LoadTopMenu(b)%>"; 里面的b在后台代码肯定没有定义的

[解决办法]
function Button4_onclick() {
var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText;
var a = <%=LoadTopMenu(b)%>;
alert(a);
}
直接这样,去掉引号

[解决办法]
.net可以前台调用后台方法吗?
是先后台,那一块只是替换成一个值吧
[解决办法]
高手真多啊
[解决办法]
20楼说的对
[解决办法]
你非要在前台调用后台的方法吗?
你不能在后台声明一个public string strA = "";的全局变量,然后页面加载的时候strA = LoadTopMenu(b);
前台直接
function Button4_onclick()
{
var b = document.getElementById("MsgManagement_SendMsg1_Label1").innerText;
var a = " <%=strA%>";
alert(a);
}
不就搞定了!
[解决办法]
还是用ajax比较好
[解决办法]
应该用ajax的方法,你那样不行
[解决办法]
用aiax.dll
[解决办法]

HTML code
<%@ Page Language="C#" AutoEventWireup="true"   CodeFile="ClientCallback.aspx.cs" Inherits="ClientCallback" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML   1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head id="Head1" runat="server">  <title>Client Callback Example</title>  <script type="text/ecmascript">    function LookUpStock()    {        var lb = document.getElementById("ListBox1");        var product = lb.options[lb.selectedIndex].text;        CallServer(product, "");    }    function ReceiveServerData(rValue)    {           document.getElementById("ResultsSpan").innerHTML = rValue;    }  </script></head><body>  <form id="form1" runat="server">    <div>      <asp:ListBox ID="ListBox1" Runat="server"></asp:ListBox>      <br />      <br />      <button type="Button" onclick="LookUpStock()">Look Up Stock</button>      <br />      <br />      Items in stock: <span id="ResultsSpan" runat="server"></span>      <br />    </div>  </form></body></html>
[解决办法]
引用楼主 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+"!!!!!!!!";
}

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

[解决办法]
b是客户端的
可以用ajax,传递给后台,再把那个写出来
[解决办法]
http://www.cnblogs.com/tengs2000/articles/1177740.html

读书人网 >asp.net

热点推荐