ajax局部刷新问题!!

xiaoxiao8372 2010-10-28 03:26:25
两个页面parent.aspx , child.aspx
现在是这样,在child.aspx通过ajax已能成功访问到 parent.aspx (进入到page_load事件中)并也更改了其中一个控件的值,但是当child.aspx请求完了以后并没有局部刷新parent.aspx,也就是说parent.aspx其中一个控件的值是变化的,但就是没有刷新显示出来!!
想了挺多方法也没整明白,望高大家不惜指教啊!
...全文
219 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiao8372 2010-10-28
  • 打赏
  • 举报
回复
谢谢各位大侠们,问题已经解决了啊。是这样的确实是我理解有些问题啊。
先在parent.aspx这样写返回值

if (!string.IsNullOrEmpty(Request.QueryString["abcd"]))
{
// 将得到的数据返回到子页面
Response.Write(Lb_msgnum.Text + "-->>");
Response.End();
}

子页面中这样写JS
if(xmlhttp.responseText!=""){
parent.document.getElementById('Lb_msgnum').innerHTML = xmlhttp.responseText;
}
这里大家应该注意到了你页面中的Lb_msgnum.Tex 是个asp:lable 但是当页面请求完了以后居然将asp:lable解析成了html无素中的 <span>,这里大家一定要注意啊,像我走了一下午的弯路啊,哈哈!
hahanan1987 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiaoxiao8372 的回复:]

JScript code

function getPart(url){
xmlhttp.open("get",url,true);
xmlhttp.onreadystatechange = function(){

if(xmlhttp.readyState == 4)
{
if(xmlhttp.stat……
[/Quote]
感觉楼主ajax理解不对
不是通过ajax来使被访问的页面重新加载
而是通过ajax来处理数据,返回数据,具体的访问什么处理程序有可能是aspx,ashx等
局部刷新的效果是根据返回的值通过js来修改的。就是通过你所谓没用的xmlhttp.responseText
小鹏 2010-10-28
  • 打赏
  • 举报
回复
父页面要刷新显示呀
rwm5366745 2010-10-28
  • 打赏
  • 举报
回复
子页面 获取父页面控件的id 当子页面更新完了后用js 更新父页面控件的值
guozhaoyou1 2010-10-28
  • 打赏
  • 举报
回复
int msgnum = MsgBll.GetPageCounts(userid);
Lb_msgnum.Text = msgnum.ToString();

把这个值返回到AJAX
if(xmlhttp.status == 200)
{
parent.window.document.getElementById("msgnum").value = xmlhttp.responseText

}
claymore1114 2010-10-28
  • 打赏
  • 举报
回复
子页面的js 接收 ajax返回的值,再 更改 父页面的值。
xiaoxiao8372 2010-10-28
  • 打赏
  • 举报
回复

function getPart(url){
xmlhttp.open("get",url,true);
xmlhttp.onreadystatechange = function(){

if(xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
alert("成功了进来");
if(xmlhttp.responseText!=""){
//这块意义不大,主要是传递到父页面,要局部刷新的!
alert(xmlhttp.responseText)
}
}
else
{
//document.getElementById("partdiv").innerHTML = "数据载入出错";
alert("数据载入出错");
}
}
}
xmlhttp.setRequestHeader("If-Modified-Since","0");
xmlhttp.send(null);
}




//接收弹出窗体的返回值,重新加载父窗体.
function AlertMsgBox(MsgBox) {
alert(MsgBox);
//刷新父页面,并加载当前页面
// getPart("/Manage/user.aspx?abcd=1");

parent.window.location.href="/Manage/user.aspx?msgflag=1";


}

这是父页面中的pageload
         if (!IsPostBack)
{
//在这里更改某一控件的值
if (!string.IsNullOrEmpty(Request.QueryString["abcd"]))
{

int userid = Convert.ToInt32(Zmn.Web.Controls.UserValue.UserID);

int msgnum = MsgBll.GetPageCounts(userid);
Lb_msgnum.Text = msgnum.ToString();
// Response.Write("<script>window.location ='user.aspx' </script>");
//这里是该刷新了吧,但就是无法实现局部刷新的啊。呵
}



}


xiaoxiao8372 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 claymore1114 的回复:]

js 在前台 再 更改parent.aspx的 值
[/Quote]
父页面,前台的JS是运行不了的。ajax的请示,只在page_load中。。
孟子E章 2010-10-28
  • 打赏
  • 举报
回复
html控件使用innerHTML="xxx",表单输入使用value="xxx"更新内容
guozhaoyou1 2010-10-28
  • 打赏
  • 举报
回复
假设parent.aspx有个文本框 id="controlId"
child.aspx
直接写JS
parent.window.document.getElementById("controlId").value = "childId";
hahanan1987 2010-10-28
  • 打赏
  • 举报
回复
要改就通过返回的信息利用js修改控件值
hahanan1987 2010-10-28
  • 打赏
  • 举报
回复
child.aspx通过ajax访问Parent.aspx是一次独立的请求,和原Parent.aspx是没有关系的。
claymore1114 2010-10-28
  • 打赏
  • 举报
回复
js 在前台 再 更改parent.aspx的 值
XiuJuan584868710 2010-10-28
  • 打赏
  • 举报
回复
不会吧!Ajax是即时刷新!

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧