问题是这样的: 我在父级页面传值到子级页面,而子级页面也成功获取到了这个值。 接着,我用js把这个值赋给了子级页面的某一个控件,如TextBox,而TextBox也成功获取到了这个值. 
(在$(document).ready()里给TextBox赋的值) 但问题来了,我的子级页面的TextBox已经是获取到了这个值. 但我在后台Page_Load事件里怎么也获取不到TextBox的值我知道先执行后台,在执行js,所以取不到我想在Page_Load里直接获取父页面的值,怎么获取我该如何才能在后台页面初始化的时候获取到textbox的值呢?----- 
(不用ajax,不用url传值)

解决方案 »

  1.   

    除了session cookie这些我想不到了,期待高手出现!
      

  2.   

    其实这个的话。你可以用jquery自己来写一个专门去处理这个值的事件。。
      

  3.   

    父页面的值是另一个子页面用js赋给的,没有刷新,所以不能保存在session之类的里面,只能在当前子页面想办法,各位哥哥谢谢了,请帮忙,想了一天了
      

  4.   

    http://www.cnblogs.com/oec2003/archive/2007/08/08/847458.html
    http://www.soft6.com/tech/13/136644.html
      

  5.   

    晕,父页面传值到子页面,用的是js负值,子页面都没有刷新,Page_Load怎么可能执行?
    要想子页面的的CS程序能处理这个值,在Page_Load里面肯定是不行的,用这个方法,你可以试一下:子页面继承ICallbackEventHandler基类,实现public void RaiseCallbackEvent(String eventArgument)和public string GetCallbackResult()方法,在这两个方法中处理你需要的数据.
      

  6.   

    用js在子页可以直接获取父页面的值,现在我想在pageload里获得,用那个值来此初始化页面,用js执行顺序不允许
      

  7.   

    在页面加载时.用js赋值给cookie. page_load再读取~
      

  8.   

    先执行Page_Load,在执行js, 这个lZ是明白的。
    你放在Button的click事件下就能取到!!
    如果非要在Page_Load里面获取的话  得用一个input  Button
    而且得用JS 执行按钮的onclick事件   这段JS 在Page_Load事件里调用。
      语言组织不好  希望LZ 明白
      

  9.   

    我也好像这样,可是js是不能给cookie,session之类的赋值的呀
      

  10.   

    我是要用这个值初始化页面的,要用buttion的话,页面就不是第一次加载执行了,也不行
      

  11.   

    楼主的做法貌似不可能的吧。哪里有已经加载好了不post 再往后台传值的。还是加在Page_Load事件里,最好用url传值。
      

  12.   

    能   去看看下面链接
    http://zhidao.baidu.com/question/88455272.html
      

  13.   

    我要下班了,这个问题三天后我上班就得解决,所以请各位帮忙,谢谢了,谁知道请加我qq381704515,加的时候请写上csdn,否则通不过,麻烦大家了,我平时是别人帮我挂号,上班是我自己,请这几天把解决方法发到我邮箱里,或者恢复到csdn,谢谢高手们了
      

  14.   

    不用session不用url,只有再刷新一次了!
      

  15.   

    可以的.但page_load在第二次才能读取到cookie...
      

  16.   

     可以的吧,要在父页面创建一个Cookie,子页面读取
    <SCRIPT language="JavaScript"> 
    <!-- 
    //首先获取name就是标记
    function getcookie(Name) { 
    var search = Name + "=" 
    var returnvalue = ""; 
    if (document.cookie.length > 0) { 
    offset = document.cookie.indexOf(search) 
    if (offset != -1) { 
    offset += search.length 
    end = document.cookie.indexOf(";", offset); 
    if (end == -1) 
    end = document.cookie.length; 
    returnvalue=unescape(document.cookie.substring(offset, end)) 


    return returnvalue; 

    function okla(){ 
    if (getcookie('biaoji')==''){ 
    document.write("呵呵1");
    document.cookie="biaoji=1" 
    }else if (getcookie('biaoji')=='1'){ 
    document.write("呵呵2");
    document.cookie="biaoji=2" 
    } else if (getcookie('biaoji')=='2'){ 
    document.write("呵呵3")


    okla() 
    //--> 
    </SCRIPT>网上找的代码,自己研究一下
      

  17.   

    url有长度限制,我这个值刚好很长,所以放弃了
      

  18.   

    子页面已经打开,并且也取到父页面的值了。这时候page_load肯定执行不了了。只能用ajax的方式去执行本页面的page_load啊。如果数据量大,可以用post的方式。看看jquery的ajax请求啊。
      

  19.   

    这只不过是一个纯的js问题,用js解决. js也是可以写cookie的.
      

  20.   

    在父页面用js给子页面赋值的时候就要写cookie,然后子页面才能在page_load里取到值. 光在子页面里面,按你所规定的限制条件,是没办法的.
      

  21.   

    子页面传副页面时。将你想在后台获取的值放到一个hidden里,在后台获取,应该是可以的
      

  22.   

    现写的
    给你点思路吧        //父页面给Cookie赋值
            document.cookie="cccc=123";//cccc为cookie名,123为值
            var cookies=new Array();
            //查找Cookie函数
            function GetCookie(name)
            {
                if(document.cookie.length>0)
                {
                    cookies=document.cookie.split(';');
                }
               for(var i=0;i<cookies.length;i++)
               {
                    if(cookies[i].toString().search(name)>0)
                    {
                        return cookies[i];
                    }
               }
            }
            var strCookie=GetCookie('cccc');
            alert(strCookie);
      

  23.   

    父页用隐藏字段或者表单
    子页在pageload中用 request["xxx"]
      

  24.   

    当前页面 应该可以去上一个页面查找控件的,IsCrossPagePostBack 记不太清了(自己百度一下用法)
    父页面放一个隐藏域 子页面去找试试 
      

  25.   

    可以不用Session或者Cookie,但需要刷新下页面。
    子页面前台的js是在!IsPostBack时执行,执行完后提交页面。后台就可以获取了,不过这会回发一次。
      

  26.   

    用js Cookie 重写Pre_Init事件  页面类同时继承一个类 再读取属性
      

  27.   

    重新提交一次而子级页面也成功获取到了这个值。 
    --这个是怎么传的?例如是url参数的话,不是能在后台获取的么?
      

  28.   

    明白你的意思了,你是想从子页面的page_load事件里面读取到父页面用js传过来的值。却不让用get方式接收参数,也就是你所说的url方式。
    而你子页面接收参数也是用的js直接获得。不知道你是否清楚一个概念,从一个页面向另一个页面传值,抛过session、cookie之类的中转方式不说,就只有Get和Post两种传参方式,而在.net里面Get方式对应的就是url传值;Post方式对应的则是控件回传和跨页数据提交(用控件的postbackurl属性实现)两种方式。但.net虽然把post方式分了两类,其实从实现上来看在客户端的实现都是通过封装数据再提交到一个form实现的。由此说来,在父页的客户端(你所指的js方式)传递数据让子页接收,再把你说的url方式(GET方式)排除掉,就只能用Post方式来传递这个参数,也就是在跳转到子页的时候通过封装数据提交到form方式实现。现在确定了发送参数的必然方法,还要接收参数,在让asp.net接收参数的时候抛过中转方式也就两种参数
    Get和Post,同样,安你的要求不考虑Get方式接收,只能接收Post方式传来的值了,而.net把所有Post来的值都封装到了服务器控件里面。所以你想解决问题唯一的办法就是父页通过form方式把数据提交到子页,在form里面封装上asp.net服务器端可识别的数据,最后服务端调用该参数(控件名.text)。说了这么一大堆,其实是给你做了一个可行性分析,如果你通过url方式传递的话最最简单了,不明白你为什么不采用。如果不用url方式,按你的需求,就绝对只有我说的这一种解决方式,而这种解决方式的关键,就是如何让form里封装数据的input控件到了服务端能识别为服务端控件,这个需要你自己打开代码分析asp.net把子页面生成的客户端代码来实现!
    可以肯定的是绝对比url麻烦NN倍!如何取舍就看你了!
      

  29.   

    对了,在子页page_load里面使用Request.Form接收会对你有帮助!这样就不用分析步骤了!
    直接Request.Form("input表单名")就得到传来的值了,不过提交form时要确保是post传递啊(<form  method=post url='子页名'>)。
    这个方法看起来很恶心,我也这么认为,不过按你的需求独此一种解法!
      

  30.   

    如果父页面的传值控件是TextBox,在子页面的 Page_Load中写:
    string text = (this.Page as FatherPage).SomeTextBox.Text;如果在Page_Load中取不到值,延迟到 OnPreRender方法中去取
      

  31.   

    这个比那个ajax实现更加的简单,看看我博客里面的关于参数间的传值,最后新年快乐
      

  32.   

    你是要在js后执行page_load么,那么ajax是个不错的选择,你可以根据你textbox的值是否为空判断函数的执行,正如你说的一样,先执行后台,再执行前台,那么你执行后台的时候textbox的值是空的你就不行他,当你执行的前台获取到你的值以后你用ajax执行page_load就行了,比如一个ajax的列子
    var xmlHttp;
        function cteartxmlhttp()
        {   
        if (window.ActiveXObject)
            {
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
        else if(window.XMLHttpRequest)
            {
             xmlHttp=new XMLHttpRequest();
            }
        }
    function Ex_Page_load()
        {
        cteartxmlhttp();
        url1="当前页面的名称如:aa.aspx";
        xmlHttp.Open("get",url1,true); 
        xmlHttp.onreadystatechange=result;
        xmlHttp.send(null);//
        }
    function result()
        {
        if (xmlHttp.readyState==4)
        if (xmlhttp.status==200)
            {
                    alert(操作ok);       
            }
        }
    这样就可以了
      

  33.   

    要用到sender把空间上的值得到!
      

  34.   

    用hidden试一下
    将值保存在hidden
    然后在后台获取