黑马程序员技术交流社区

标题: js调用后台参数的问题 [打印本页]

作者: 石国庆    时间: 2013-4-18 12:04
标题: js调用后台参数的问题
从网上看文章前台调用后台方法是'<%=N%>'这种方法,但是我测试的结果是这个N必须是命名空间下面的,如果我想调用方法中小n变量能够实现吗?用什么方法?
后台
public partial class 前后台调用 : System.Web.UI.Page
{
    protected int N = 56;
    protected void Page_Load(object sender, EventArgs e)
    {
      int n =17;
    }
}
前台
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script  type="text/javascript" language="javascript">
        var temp = "<%=N%>";
        alert(temp);
    </script>
</head>
<body>
    <input type="text" value="<%=N%>"/>
    <input type="text" value="<%=n%>"/>这行是有错的
</body>
</html>


作者: 石国庆    时间: 2013-4-18 12:08
上面的问题不要用隐藏域的方法,还有就是这段脚本在后台的哪里写啊,谁能写出一段完整的代码看看
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
          " <script language='javascript'>var temp=" + tmp + " </script>"
          tmp是后台变量,然后js中可以直接访问temp获得值。
作者: 史鹏飞    时间: 2013-4-18 14:59
石国庆 发表于 2013-4-18 12:08
上面的问题不要用隐藏域的方法,还有就是这段脚本在后台的哪里写啊,谁能写出一段完整的代码看看
方法三:1 ...

不知道这样行不行?
前台:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>

<body>
    <form runat="server">
        <input type="text" value="<%=N %>" id="text1" />
        <input type="text" value="" id="text2" />
    </form>
</body>
</html>

后台:

protected int N = 20;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int n = 60;
                Page.ClientScript.RegisterStartupScript(this.GetType(), "value", "document.getElementById('text2').value=" + n +";" , true);
            }
            
        }
作者: 石国庆    时间: 2013-4-18 15:32
史鹏飞 发表于 2013-4-18 14:59
不知道这样行不行?
前台:

额,后台调前台的方法。。回家我测试一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2