Asp.net 中继器控件内的If语句

Asp.net 中继器控件内的If语句,asp.net,vb.net,repeater,Asp.net,Vb.net,Repeater,虽然在这个话题上有几个问题,但我还没有找到任何令人满意的答案 我有一个需要显示复杂内容的转发器。模板中需要IF语句。我不能将此移到代码后面,因为我需要在中继器中注册服务器控件和用户控件。以下是我需要的: <asp:Repeater ID="rCom" runat="server" ClientIDMode="Static"> <ItemTemplate> <%# If CBool(Eval("IsFix")) Then%>

虽然在这个话题上有几个问题,但我还没有找到任何令人满意的答案

我有一个需要显示复杂内容的转发器。模板中需要
IF
语句。我不能将此移到代码后面,因为我需要在中继器中注册服务器控件和用户控件。以下是我需要的:

<asp:Repeater ID="rCom" runat="server" ClientIDMode="Static">
    <ItemTemplate>
       <%# If CBool(Eval("IsFix")) Then%>
           <%-- HTML content including server and user controls --%>
       <%Else%>
           <%-- HTML content including server and user controls --%>
       <%End If%>
    </ItemTemplate>
</asp:Repeater>

上面的代码抛出一个编译器错误。你知道如何实现这一目标吗?我需要评估
If
语句中的
IsFix
字段。

从具有
If
语句的代码块中删除
#
:-

<asp:Repeater ID="rCom" runat="server" ClientIDMode="Static">
    <ItemTemplate>
       <% CBool(Eval("IsFix")) Then%>
           <%-- HTML content including server and user controls --%>
       <%Else%>
           <%-- HTML content including server and user controls --%>
       <%End If%>
    </ItemTemplate>
</asp:Repeater>

编辑:

尝试使用条件运算符(我不确定VB.NET中的语法,请检查):-


我会将每组内容放在服务器端面板中,然后在ItemDataBound事件中,将一个面板的可见性设置为true,另一个设置为false。 如果在服务器端设置了可见性,那么前端内容甚至不会被渲染。

它工作得非常好

<%# If(CBool(Eval("bitExtemporaneo")) = True, "<img src=""Imagenes/Extempo.png"" alt=""Extemporaneo""/>", "")%>

从包含if语句的代码中删除

然后像这样使用代码

<%
                    object objIsFix = ((System.Data.DataTable)rep.DataSource).Rows[_nIndex]["IsFix"];
                if (bool(objIsFix)) {%>
                <%-- HTML content including server and user controls --%>
                <%}Else{%>
                <%-- HTML content including server and user controls --%>
                <%}%>


“\u nIndex”是在cs文件中定义的

已经尝试过了。它不起作用。当中继器被绑定时,我会遇到这个错误:诸如Eval()、XPath()和Bind()之类的数据绑定方法只能在数据绑定控件的上下文中使用。简单的HTML内容可以这样工作:
。但是我需要有服务器控件。@navigator-请检查我的更新,并让我知道它是否有用。正如我提到的,我需要在这两个条件下有服务器和用户控件。这听起来是个好主意。但是,这两个面板还将包含数据绑定控件(两个面板上都有一些通用控件)。如何确保只绑定可见面板的数据绑定控件?我有一些自动绑定的用户控件,但我相信我可以通过公开属性来控制。谢谢
<%
                    object objIsFix = ((System.Data.DataTable)rep.DataSource).Rows[_nIndex]["IsFix"];
                if (bool(objIsFix)) {%>
                <%-- HTML content including server and user controls --%>
                <%}Else{%>
                <%-- HTML content including server and user controls --%>
                <%}%>