现在想求教一个实际问题,在gridview 自动无刷新自动翻页-ASP.NET实现,我通过一个timer来实现gridview的自动无刷新自动翻页,现在碰到两个问题,一个是每次换页都会出现整个page的postback,而不是callback.另外一个问题是由于数据量比较大,我不希望每次都重新去加载数据,代码如下:
 protected void Timer2_Tick(object sender, EventArgs e)
    {
       
            if (this.GridView1.EditIndex != -1)
            {
                this.GridView1.PageIndex = 0;
            }
            else
            {
                if (this.GridView1.PageIndex < this.GridView1.PageCount - 1)
                {
                    this.GridView1.PageIndex = this.GridView1.PageIndex + 1;                }
                else
                {
                    this.GridView1.PageIndex = 0;
                    getData();
                   
                }
                this.GridView1.DataSource = showTable;
                this.GridView1.DataBind();                
showTable定义的为全局变量(Datatable)
原来希望的是gridview所有的页循环完成之后再去重新加载数据,所以定义了全局的datatable,但是每次换页之后showTable的值为空了,不知道是否有什么好的解决办法,工作需要,能否帮助提供实例,数据库为Oracle,可以导入本地或其它数据库,但如何控制一定时间导入一次?减少影响Oracle的性能,谢谢您!希望您能帮助,谢谢!

解决方案 »

  1.   

    定義全局datatable,如果加上static就可以實現,但是不同人瀏覽這個數據是同一個數據,如果你希望是這個樣子的話,可以這樣用。
    第二種方法是用session,這樣就不會有上面的問題,但是可能耗資源。
      

  2.   

    第一个问题“每次换页都会出现整个page的postback,而不是callback",楼主把GridView放在一个UpdatePanel中应该可以触发Callback事件而不是Postback,如果已经把GridView放置在UpdatePanel中,则应该继续设置Timer为UpdatePanel的AsyncPostBackTrigger,也就是让Timer的Tick事件触发UpdatePanel的Callback.    <Triggers>
            <asp:AsyncPostBackTrigger ControlID="timer1" EventName="Tick" />
        </Triggers>
        </asp:UpdatePanel>第二个问题期待1楼给出详细解释。
      

  3.   

    感谢大家的回复,能否提供一个实例, ,谢谢您namhyuk能否讲的再详细一些,从网上找到一点信息,但没有做过这方面,请您指点:“ 推(push)模式是一种基于客户器/服务器机制、由服务器主动将信息送到客户器的技术(联想一下木马的端口反弹技术?)。在push模式应用中,服务器把信息送给客户器之前,并没有明显的客户请求。push事务由服务器发起。push模式可以让信息主动、快速地寻找用户/客户器,信息的主动性和实时性比较好。但精确性较差,可能推送的信息并不一定满足客户的需求。推送模式不能保证能把信息送到客户器,因为推模式采用了广播机制,如果客户器正好联网并且和服务器在同一个频道上,推送模式才是有效的。push模式无法跟踪状态,采用了开环控制模式,没有用户反馈信息。在实际应用中,由客户器向服务器发送一个申请,并把自己的地址(如IP、port)告知服务器,然后服务器就源源不断地把信息推送到指定地址。在多媒体信息广播中也采用了推模式。另外,如手机***、qq广播。”您是说用到Oracle的触发器或Alert功能?因为希望对数据库影响越小越好,所以不能用这个功能,想实现每天一定的时间刷新几次数据到Access或其它数据库,然后这个页就在这个本地库里反复的刷新(查找),还不知道刷新时,WEB页是否能正常显示?hm8030 感谢您的回答,就是实现每一个客户端浏览的是同一个数据,谢谢您!drummery 感谢您的回复,我想也需要用AJAX来实现,如遇到困难,还要多向您请教,谢谢!如果大家能提供一个实例就太好了,数据源可以用access的,定时刷新,不知道不打开access是否可以实现,手上只有打开后定时运行宏的方法,谢谢大家!