问题是这样的: 我在父级页面传值到子级页面,而子级页面也成功获取到了这个值。 接着,我用js把这个值赋给了子级页面的某一个控件,如TextBox,而TextBox也成功获取到了这个值.
(在$(document).ready()里给TextBox赋的值) 但问题来了,我的子级页面的TextBox已经是获取到了这个值. 但我在后台Page_Load事件里怎么也获取不到TextBox的值我知道先执行后台,在执行js,所以取不到我想在Page_Load里直接获取父页面的值,怎么获取我该如何才能在后台页面初始化的时候获取到textbox的值呢?-----
(不用ajax,不用url传值)
(在$(document).ready()里给TextBox赋的值) 但问题来了,我的子级页面的TextBox已经是获取到了这个值. 但我在后台Page_Load事件里怎么也获取不到TextBox的值我知道先执行后台,在执行js,所以取不到我想在Page_Load里直接获取父页面的值,怎么获取我该如何才能在后台页面初始化的时候获取到textbox的值呢?-----
(不用ajax,不用url传值)
http://www.soft6.com/tech/13/136644.html
要想子页面的的CS程序能处理这个值,在Page_Load里面肯定是不行的,用这个方法,你可以试一下:子页面继承ICallbackEventHandler基类,实现public void RaiseCallbackEvent(String eventArgument)和public string GetCallbackResult()方法,在这两个方法中处理你需要的数据.
你放在Button的click事件下就能取到!!
如果非要在Page_Load里面获取的话 得用一个input Button
而且得用JS 执行按钮的onclick事件 这段JS 在Page_Load事件里调用。
语言组织不好 希望LZ 明白
http://zhidao.baidu.com/question/88455272.html
<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>网上找的代码,自己研究一下
给你点思路吧 //父页面给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);
子页在pageload中用 request["xxx"]
父页面放一个隐藏域 子页面去找试试
子页面前台的js是在!IsPostBack时执行,执行完后提交页面。后台就可以获取了,不过这会回发一次。
--这个是怎么传的?例如是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倍!如何取舍就看你了!
直接Request.Form("input表单名")就得到传来的值了,不过提交form时要确保是post传递啊(<form method=post url='子页名'>)。
这个方法看起来很恶心,我也这么认为,不过按你的需求独此一种解法!
string text = (this.Page as FatherPage).SomeTextBox.Text;如果在Page_Load中取不到值,延迟到 OnPreRender方法中去取
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);
}
}
这样就可以了
将值保存在hidden
然后在后台获取