如果在ASP.NET Repeater中有条件

时间:2011-03-14 11:09:26

标签: asp.net data-binding repeater

我的ASP.NET Repeater控件遇到了一些麻烦。我需要显示一些HTML,具体取决于转发器绑定的集合中对象的布尔属性。

我有这段代码:

<asp:Repeater ID="rptListPartners" runat="server" OnItemDataBound="rptListPartners_ItemDataBound">
<HeaderTemplate>
<table border="0" cellpadding="7" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>  
    <tr>
        <td style="font-family:Verdana; font-size:11px; height: 18px; width:370px;">
        <div id="data_tooltip_from_div<%#Eval("id") %>" style="display:none; z-index:10;"><%#Eval("profile") %></div>

            <a id="tooltip_from_div<%#Eval("id") %>" href='<%#Eval("homepage") %>' class="tooltip" target="_blank"> 
                <div style="float:left;"><%#Eval("name") %>, <%#Eval("address") %>, <%#Eval("zip") %> <%#Eval("city") %>&nbsp;</div>
                <div style="width:18px; float:left;">  
                    <asp:Panel Width="18px" ID="pnlLink" runat="server" Visible='<%#Eval("IsUrl") %>'>
                        <a href='<%#Eval("homepage") %>' target="_blank">
                            <img src='/kort/www.png' />
                        </a>
                    </asp:Panel>
                </div>
            </a>

        </td>
        <td style="font-family:Verdana; font-size:11px; height: 18px;">Tlf. <%#Eval("phone") %></td>                
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>

我需要显示

<a id="tooltip_from_div<%#Eval("id") %>" .... >

</a>

带有span或div标签的标签,如果&lt;%#Eval(“IsUrl”)%&gt;是假的 - 因此如果对象上没有url字符串,则不显示链接。

我到底该怎么做?非常感谢任何帮助/提示! : - )

一切顺利,

2 个答案:

答案 0 :(得分:3)

您可以尝试同时放置adiv标记,然后根据您的条件设置Visible属性。

简单,轻松,智能

答案 1 :(得分:2)

嗯,我自己解决了这个问题:

在.aspx页面上,我正在调用一个写出html的方法:

<asp:Repeater ID="rptListPartners" runat="server" OnItemDataBound="rptListPartners_ItemDataBound">
<HeaderTemplate>
<table border="0" cellpadding="7" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>  
    <tr>
        <td style="font-family:Verdana; font-size:11px; height: 18px; width:370px;">
        <div id="data_tooltip_from_div<%#Eval("id") %>" style="display:none; z-index:10;"><%#Eval("profile") %></div>
            <%# CheckUrl(DataBinder.Eval(Container.DataItem, "IsUrl"), 
                         DataBinder.Eval(Container.DataItem, "id"),
                         DataBinder.Eval(Container.DataItem, "homepage"),
                         DataBinder.Eval(Container.DataItem, "name"),
                         DataBinder.Eval(Container.DataItem, "address"),
                         DataBinder.Eval(Container.DataItem, "zip"),
                         DataBinder.Eval(Container.DataItem, "city"))   
            %>
        </td>
        <td style="font-family:Verdana; font-size:11px; height: 18px;">Tlf. <%#Eval("phone") %></td>                
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>
</asp:Repeater>

然后在我的代码隐藏中:

public string CheckUrl(object isUrl, object id, object homepage, object name, object address, object zip, object city)
{
    string html = string.Empty;
    if (isUrl != null)
    {
        string _id = id.ToString();
        string _homepage = homepage.ToString();
        string _name = name.ToString();
        string _address = address.ToString();
        string _zip = zip.ToString();
        string _city = city.ToString();

        if (isUrl.ToString().Equals("True"))
        {
            html = "<a id='tooltip_from_div" + _id + "' href='" + _homepage + "' class='tooltip' target='_blank'>"
                + "<div style='float:left;'>" + _name + ", " + _address + ", " + _zip + " " + _city + "&nbsp;</div>"
                + "<div style='width:18px; float:left;'>  "
                + "    <asp:Panel Width='18px' ID='pnlLink' runat='server' Visible='" + isUrl.ToString() + "'>"
                + "     <a href='" + _homepage + "' target='_blank'>"
                + "         <img src='/kort/www.png' />"
                + "        </a>"
                + "    </asp:Panel>"
                + "</div>"
            + "</a>";
        }
        else
        {
            html = "<span id='tooltip_from_div" + _id + "' class='tooltip' target='_blank'>"
                + "<div style='float:left;'>" + _name + ", " + _address + ", " + _zip + " " + _city + "&nbsp;</div>"
                + "</span>";
        }
    }

    return html;
}

像魅力一样: - )

djechelon:我尝试了你的建议,但我根本无法让它与所有的javascript一起工作以及如此:-(对不起..