注册 登录
编程论坛 ASP.NET技术论坛

后台Page_Load事件中怎么调用前台JS变量的值

aei135 发布于 2010-07-01 14:27, 8563 次点击
后台Page_Load事件中怎么调用前台JS变量的值?
需要把前台JS变量接收到的值传入后台,然后在后台数据库绑定中使用
17 回复
#2
冰镇柠檬汁儿2010-07-01 14:40
可以用服务器空间中的Hidden那个,用js把你需要的值写到这个隐藏域中,然后到后台去读取这个值
#3
aei1352010-07-01 14:59
我试过了,不行的,必须要有个单击之类的动作才能得值,在Page_Load事件中得不到值的
#4
bygg2010-07-01 15:35
那是因为你在Page_Load中,根本就没有对js变量进行处理,所以就没有值。
不知道我猜得对不对。
#5
aei1352010-07-01 15:42
前台我用JS把变量值赋给了一个隐藏文本hidden,后台用this.hidden1.value去获取值,无法获取到,因为它是先执行Page_Load事件的
#6
bygg2010-07-01 15:46
以下是引用aei135在2010-7-1 15:42:46的发言:

前台我用JS把变量值赋给了一个隐藏文本hidden,后台用this.hidden1.value去获取值,无法获取到,因为它是先执行Page_Load事件的

当然是先执行Page_Load中的东西啦,所以你无法得到。如果能个回发,应该可以,呵呵。就是执行两次Page_Load
#7
aei1352010-07-01 16:52
给我解决方法啊,别光说啊
#8
冰镇柠檬汁儿2010-07-02 00:08
那这个也不难实现,我给你写了一个页面,当然在JavaScript里面我写了一个固定的值,目的只是为了测试,代码如下:
HTML代码:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

<html xmlns="http://www.
<head runat="server">
    <title>无标题页</title>
    <script type="text/javascript">        
        function TestValue()
        {
            var str = "这是测试的输入值";
            UseCallback(str);
        }
        
        function GetValye(value)
        {
            document.getElementById("TextBox1").value = value;
        }
    </script>
</head>
<body onload="TestValue();">
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>
</body>
</html>

后台C#代码:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
    string callback = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        string strRefeence = Page.ClientScript.GetCallbackEventReference(this, "arg", "GetValye", "content");
        string strScript = "function UseCallback(arg, content){" + strRefeence + ";}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallback", strScript, true);
    }

    public void RaiseCallbackEvent(string eventArg)
    {
        if (eventArg.Equals("这是测试的输入值"))
        {
            callback = "传值正确";
        }
        else
        {
            callback = "传值错误";
        }
    }

    public string GetCallbackResult()
    {
        return callback;
    }
}
#9
冰镇柠檬汁儿2010-07-02 00:09
这个代码的原理要是不明白,没关系,照着写就可以了,但是估计大家都能看懂
#10
bygg2010-07-02 10:02
冰镇柠檬汁儿,写的代码不错,呵呵
#11
冰镇柠檬汁儿2010-07-02 10:49
谢谢鼓励
#12
bygg2010-07-02 10:52
因为对ICallbackEventHandler,我用得不是太熟悉。哈哈。随便再学习一下咯
#13
冰镇柠檬汁儿2010-07-02 11:00
别告诉我ajax的基础用法你不知道,打死我都不信
#14
bygg2010-07-02 11:07
用过用过,只是不精而已
#15
NewDeveloper2010-07-02 21:35
蛋疼 你如果是第一次加载有必要这么麻烦要吧前台什么都没干过的页面信息传到后台去?
#16
bygg2010-07-03 19:08
有些时候,是需要的.
#17
NewDeveloper2010-07-03 19:16
回复 16楼 bygg
那请问在什么样的情况下呢?帮我扫扫盲
#18
HeiN2010-07-04 03:16
呵呵,顶
1