最近使用ASP.NET在做WEB开发的时候遇到了一种情况,就是想要在DataList的ItemTemplate模板中根据不同的内容需要有不同的显示样式,这样就需要在ItemTemplate中进行判断来实现,但是当使用判断语句的时候,系统会报错,倒腾了半天终于才知道了怎么回事
<% if ( Eval("id").Equals("1") ) {} %>
根据错误提示可以看出来,不支持在表达式中使用数据绑定的方法来获取当前要绑定的数据,那么现在改怎么办?根据查找才知道,一是,可以通过DataList的绑定事件来处理判断逻辑如下:
<asp:DataList ID="DataListId" runat="server" Width="1000px" OnItemDataBound="DataList1_ItemDataBound"></asp:DataList>
二就是可以在表达式中调用自定义方法来实现如下:
<tr id="<%#Eval("id") %>" class='<%# getTrClass(Eval("xingzhi").ToString(),Eval("shifen").ToString()) %>' > //定义在aspx 文件中 public string getTrClass(string xingzhi, string shifen) //定义在对应的aspx.cs 文件中 { //处理逻辑 }