做项目中经常会遇到的一个问题,在Repeater中绑定了某个数据源,需要对某个值做判断来选择页面要显示的内容,一个表中有多个值,每个值不同,显示结果也不同,这就需要用if语句来做判断了。
但是在外部可以用的if语句在判断Repeater绑定值的时候会出现问题,当然如果内容代码少的情况下我们可以用 三目算法判断,这个是可以的,例子如下: a==b?a:b;
但是当显示内同代码很多行的时候,这就不可取了,其实我们完全可以使用.net服务器组件的特性来完成我们的操作,在Repeater的显示内容的容器中(如:<table>,<tr>,<div>等)定义一个ID,并设置为服务器组件属性:runat="server"
再在Repeater绑定事件中判断该容器是否显示,事例代码如下:
前台:
- <asp:Repeater ID="Repeater1" runat="server"
- onitemcreated="Repeater1_ItemCreated">
- <ItemTemplate>
- <tr id="depth2" runat="server">
- <td align="left" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="img/menu_bg3.gif" class="menuB">
- <tr>
- <td><a href="news_list.aspx?classId=<%#Eval("id")%>"><%#Eval("className") %></a></td>
- </tr>
- </table></td>
- </tr>
- <tr id="depth"