前台的 aspx 中有多个 Repeater 控件,
后台 的CS 文件中分别绑定。
如下,前台的 aspx 代码:
- C# code
<ul> <asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <li> <span class="s1"><a href='DetailInf.aspx?NewsId=<%# Eval("NewsId") %>'> <%#GetSrCount(Eval("Title").ToString())%> </a></span> <span class="s2"> <%# Eval("EditDate","{0:yyyy-MM-dd}")%> </span> </li> </ItemTemplate> </asp:Repeater> </ul>
后台的代码:
- C# code
Repeater11.DataSource = CMSNews.showShouYe(55); //调用类中的方法 Repeater11.DataBind();类中的方法: public DataTable showShouYe(int str_classid) { DataSet ds = new DataSet(); string str_showsql = "select top 6 * from CMS_News where DeleteFlag = '0' and ClassId= " + str_classid + " order by EditDate desc"; Database db = DatabaseFactory.CreateDatabase("diaonianyuConnectionString"); DbCommand cmd = db.GetSqlStringCommand(str_showsql); try { ds = db.ExecuteDataSet(cmd); } catch (Exception ex) { WebHelper.Alert("CMS_News.cs Error!"); } return ds.Tables[0]; // 返回 arraylist }
这样写的代码,是不是 每一个 Repeater 都要从客记端到服务器,从客户端到服务器,
这样写是不是 影响访问速度,不知道怎样能提高访问速度。
非常感谢!
------解决方案--------------------------------------------------------
只要和数据库交互,肯定会存在数据交互时间的问题,如果非要这种方式,那么就要看你的查询语句是否足够优化,另外,Repeater 如果在客户端解析成了TABLE,整个界面也不是那么流畅,要等所有的数据加载完毕才会展现
真的要快,那就生成静态页面把
------解决方案--------------------------------------------------------
从你的代码来看,基本上是可以的。主要是数据库字段加索引、优化SQL语句。数据变化不频繁的话,可以适当用下缓存。