有这样一个问题想请教各位,我有一个页面目前放置了3个 updatepanel, 3个 updatepanel 中都是 GridView 用来显示数据库中的内容, 
现在我需要自动跟新页面上其中一个 GridView 中的项目的实时状态(不是从数据库中查询的),我的设想是 再使用一个 updatepanel 在它的 updatepanel_load() 中获取状态以后返回在通过 js 修改状态显示的地方,在查询状态的时候 updatepanel_load() 被阻塞住最长 30 秒,如果状态在这30秒中改变就立刻返回,否则在 30 秒后超时返回,然后再刷新这个 updatepanel。当我实现好以后发现如下问题,就是我想问的具体内容:

当这个 updatepanel 正在跟新的时候, 我点击按钮刷新其他 updatepanel 时发现需要等到前一个 updatepanel_load 返回以后后一个updatepanel才能更新, updatepanel 到底可不可以多线程并发请求,问题的关键所在是什么?

解决方案 »

  1.   

    GridView在updatepanel刷新只要GridView再绑定一遍即可!!
    即执行以下:
    GridView1.DataBind();
      

  2.   

    关键不是 GridView , 是两个 updatepanel 能不能互不干扰的同时更新?
      

  3.   

    我的设想是 UpdatePanel1<---按钮激发请求--->Web
                                    <----按钮激发请求--->web
                                  ..........................
                                                              <----按钮激发请求--->web
    UpdatePanel2<---为了提高实时性这个请求被我阻塞在 web 端最长30秒,Timer激发---> web行为类似多线程编程,但事实上我发现同一个浏览器中的 UpdatePanel (即使在框架的不同帧里)都会互相影响,所有 更新时间在单一线程的队列中完成,就是没有并发的 UpdatePanelLoad()。
      

  4.   

    好象是不能同时更新的吧 
    但是可以互相不影响的更新 
    updatepanel 并不是他能不能并发的问题
    期待高手回答其中奥秘
      

  5.   

    将UpdatePanel1,UpdatePanel2的UpdateMode设置为Conditional,
    试试以下的代码:
            UpdatePanel1.Update();
            UpdatePanel2.Update();
      

  6.   

    饿 会不会卡或者访问速度慢啊 要不你把2个updatepanel外面套个updatepanel?
    提议而已 呵呵 
      

  7.   

    自己再顶,这个问题有可能关系到浏览器处理 JS 的问题,谁知道 JavaScript 能不能多线程编程?
      

  8.   

    这个问题涉及的面可能太广了,我觉得关键还是在 js 多线程 和 updatepanel 的实现方法上,浏览器应该是支持创建多个 xmlhttprequest 的,再顶一下,再不能解决只能曲线解决这个问题了,准备散分给大家。