我该怎么办if语句的中继器内(How can i do an if statement inside

2019-08-02 02:47发布

<asp:Repeater>是驾驶我疯..

我需要去做

<ItemTemplate>
    <% if (Container.DataItem("property") == "test") {%>
        I show this HTML
    <% } else { %>
        I show this other HTML
    <% } %>
</ItemTemplate>

但我不能为我的生活找到任何方式来实现这一目标。 三元心不是什么好,因为HTML的量是相当大的,通过的DataBind事件设置标签不是很好要么,我得有HTML大块的代码隐藏。

肯定有办法做到这一点....

Answer 1:

你可以尝试创造一种ViewModel类的,做你的代码背后的决策,然后很乐意与你的中继,简单地显示它正在被提供的数据。

这是为了从UI分离逻辑的一种方式。 那么你可以有一个愚蠢的用户界面,简单地显示数据,而无需什么/如何显示决定。



Answer 2:

你可以使用服务器端的可视性:

<ItemTemplate>
    <div runat="server" visible='<% (Container.DataItem("property") == "test") %>'>
        I show this HTML
    </div>
    <div runat="server" visible='<% (Container.DataItem("property") != "test") %>'>
        I show this other HTML
    </div>
</ItemTemplate>


Answer 3:

你可以与用户控件做到这一点:

<ItemTemplate>
    <uc:Content1 runat='server' id='content1' visible='<%# Container.DataItem("property") == "test" %>'/>
    <uc:Content2 runat='server' id='content2' visible='<%# Container.DataItem("property") != "test" %>'/>
</ItemTemplate>


Answer 4:

貌似我这混了实际的数据绑定

你可以做到这一点,如下所示:

<asp:Repeater runat="server"> 
    <ItemTemplate>    
        <% if (((Product)Container.DataItem).Enabled) { %>
        buy it now!
        <% } else {%>
        come back later!
        <% } %>
    </ItemTemplate>
</asp:Repeater>



Answer 5:

我有一个类似的问题和整个这个页面绊倒了。 感谢伟大的答案,Gavin和Keltex让我在正确的轨道上,但我有一点的一个棘手的时间得到这个我的网页上工作。 最终,我能得到它与这个布尔工作,所以我想分享给后人:

显示复选框,如果假

<asp:CheckBox ID="chk_FollowUp" Visible='<%# (DataBinder.Eval(Container.DataItem, "FollowUp").ToString() == "False") %>' runat="server" />

放映标志IMG如果属实

<asp:Image ID="img_FollowUp" AlternateText="Flagged" ImageUrl="Images/flag.gif" runat="server"
     Visible='<%# DataBinder.Eval(Container.DataItem, "FollowUp") %>' Height="30" Width="30" />


Answer 6:

首先,你必须在你的Page.cs文件Defind计数变量

 <%if (Count == 0)
                         {
                             %>
                    <div style="background-color:#cfe9ed" class="wid_100 left special_text"><%# Eval("CompanyName") %></div>
                       <%}
                         else if (Count == TotalCount - 1)
                         {
                             %>
                        <div style="background-color:#f2f1aa" class="wid_100 left special_text"><%# Eval("CompanyName") %></div>
                        <%}
                         else
                         {
                              %>
                       <div class="wid_100 left special_text"><%# Eval("CompanyName") %></div><% } %>
                       <%Count++;  %>


文章来源: How can i do an if statement inside a repeater