我的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") %> </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字符串,则不显示链接。
我到底该怎么做?非常感谢任何帮助/提示! : - )
一切顺利,
博
答案 0 :(得分:3)
您可以尝试同时放置a
和div
标记,然后根据您的条件设置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 + " </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 + " </div>"
+ "</span>";
}
}
return html;
}
像魅力一样: - )
djechelon:我尝试了你的建议,但我根本无法让它与所有的javascript一起工作以及如此:-(对不起..