如何将字段从数据源绑定到ListView控件?
|
我有一个ListView控件,我曾经使用ASP ObjectDataSource控件来填充它。这很好。
但是,我想实现一个过滤器,以在ListView中显示以字母A,B,C等开头的项目。为此,我删除了ObjectDataSource控件,并用Page_Load事件中的一些代码替换了它,从而使我可以更好地控制关于我作为数据源传入的内容,类似于以下内容:
System.Diagnostics.Debug.Print(\"{0:HH:mm:ss} : GET DATA\", DateTime.Now);
List<MyItem> items = GetItems(\"A\"); // Gets a list of items with a description that
// begins with A
MyListView.Datasource = items;
System.Diagnostics.Debug.Print(\"{0:HH:mm:ss} : BIND DATA\", DateTime.Now);
MyListView.DataBind();
System.Diagnostics.Debug.Print(\"{0:HH:mm:ss} : DONE\", DateTime.Now);
输出(时间代表实际结果):
16:00:00 : GET DATA
16:00:00 : BIND DATA
16:00:20 : DONE
由于这样做,大约需要20秒才能在浏览器中加载页面,而不是在使用ObjectDataSource时花费大约1秒的时间。
要将数据加载到ListView行中,我使用标准的<%# Eval(\"Description\") %>
方法。在SO和google上搜索后,有人似乎说Eval
效率低下。
为什么在Page_Load事件中手动绑定会减慢一切速度?是因为Eval效率低下吗?我如何加快速度?正确的方法是什么?
没有找到相关结果
已邀请:
2 个回复
淑灯
屠创氓读叔