问题描述
我现在用vs2008自带的ajax功能设计一个读取数据库的功能。我把一个GridView放到UpdatePanel里面然后读数据库中一个表绑定GridView显示出来没有问题.但是现在客户需求数据不要一次显示出来也不能分页,要分次把数据显示出来。效果是这样的比如数据库里有300条记录,要求先显示50条显示出来,然后程序自动去取下50条最后显示如此循环直到300条取完显示完。整个页面要求不刷屏,看到的只是GridView不断的增大,不知道这个能不能实现,弄了很久也不行,有没有弄过类似东西高手帮助一下啦,谢谢
解决方案
解决方案二:
用AJAX,不要用自带的,比如用AJAXPro首选统计出总数并算出分页要分多少页,然后根据页数去循环取数据,相当于把人工分页变成了自动点击比如第一次取第一页的50条,然后在后面拼出Html的表格形式然后循环到第二页的50取出来拼成Html的表格形式加上第一次的...直到把页数取完
解决方案三:
可以的,用AJAX,隔一段时间去数据库取数据返回一张表,在一个DIV里不断加入返回的表
解决方案四:
还有取一次数据就要记录下取得的数据表最大的ID,下次取时ID大于这个ID
解决方案五:
用户的需求个性化太强了,建议他们使用其他方式
解决方案六:
有点难度,有空时我试试!关注!
解决方案七:
应该可以..有空试试
解决方案八:
做了一个比较丑陋的,楼主看看意思吧<asp:ScriptManagerID="ScriptManager1"runat="server"></asp:ScriptManager><div><asp:UpdatePanelID="UpdatePanel1"runat="server"RenderMode="Inline"><ContentTemplate><asp:GridViewID="GridView1"runat="server"></asp:GridView><asp:TimerID="Timer1"runat="server"Interval="100"OnTick="Timer1_Tick"></asp:Timer></ContentTemplate></asp:UpdatePanel>
staticintrow=10;privatevoidBindGrid(){SqlConnectioncn=newSqlConnection(@"server=.SQLExpress;uid=sa;pwd=;database=northwind");stringstrsql="selecttop"+row+"orderid,orderdatefromorders";SqlDataAdapterda=newSqlDataAdapter(strsql,cn);DataSetds=newDataSet();cn.Open();da.Fill(ds);cn.Close();GridView1.DataSource=ds;GridView1.DataKeyNames=newstring[]{"orderid"};GridView1.DataBind();}protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){BindGrid();}}protectedvoidTimer1_Tick(objectsender,EventArgse){row+=10;BindGrid();}
解决方案九:
这个不刷新的吗?
解决方案十:
关键是你准备什么时候去执行,查后50条记录的方法,或者你在某行的时候触发
解决方案十一:
这个用html页面都可以作.用ajax,再用个timer就可以实现了.
解决方案十二:
动态添加GridView在RowDatabind事件中判断,如果是50的倍数,则动态的生成一GridView,对该GridView做绑定
解决方案十三:
to:jeepers使用AJAX定时去取数据吧。比如写一个JS函数专门负责取数据并填充到GridView中,然后在开始获取按钮时开始一个定时器,每隔1分钟就去一次,这样整张页面就不会刷新了。
解决方案十四:
有个性的客户
解决方案十五:
其实就是js轮换显示数据吧?不是有很多显示图片还是新闻列表的例子吗网上?改一下就可以了!把数据一次查出来,然后设定一次显示几条,显示多少时间,这样来一个玩间断轮换就可以了!这个比较简单,要是一次只查出规定的数据数,那就得用ajax来+timer定时器!建议不要用gv这个控件了!
解决方案:
不会!
解决方案:
用Timer是一个办法但是效率太低我想实现就是在客户端前50条刷出来显示完毕后,紧接着刷下50条,直到没有可刷的数据为止