如何有条件显示或不显示DataList ItemTemplate里的某些内容
现有数据库中有一个表,用DataList显示。比如有10列,现在需要根据电脑显示器宽度显示不同列数。如果是640x460,就显示5列,其余5列不显示。如果是1024x768,就全部显示
假设已经把屏幕宽度赋值到 screenWidth里
在 mypage.aspx 文件里
<itemtemplate>
<asp:label id= 'col1 ' text= 'something '>
<asp:label id= 'col2 ' text= 'something2 '>
...
<% if screenWidth > 1000 %>
<asp:label id= 'col6 ' text= 'something6 '>
...
<asp:label id= 'col10 ' text= 'something10 '>
<% end if %>
</itemtemplate>
我希望达到上述假想代码(实际不能编译)的效果。有什么高招吗?
------解决方案--------------------考虑到性能,比如对于 800×600 的分辩率,就不需要执行绑定额外的五个字段,
需稍微复杂的代码,
<itemtemplate>
<%# GetBindDataItem(Container.DataItem, scrennWidth) %>
<itemtemplate>
protected string GetBindDataItem(object dataItem, int screenWith) // 是一个自定义的方法
{
// 编程代码绑定方式
// object val1 = System.Web.UI.DataBinder.Eval(dataItem, "MyFieldName1 ");
// object val2 = System.Web.UI.DataBinder.Eval(dataItem, "MyFieldName1 ");
// ...
// return " " + val1 + val2 + ...
}