如何设置<;asp:BulletedList显示模式=“;HyperLink”/>;
本文关键字:模式 显示 gt HyperLink BulletedList asp 何设置 设置 lt | 更新日期: 2023-09-27 18:29:18
我在ASP.NET中有一个项目符号列表,其DisplayMode设置为HyperLink。当控件被渲染时,链接显示得非常好,但另外我想为每个锚标记设置标题。我该怎么做?
aspx文件:
<asp:BulletedList ID="BL1" runat="server" DisplayMode="HyperLink" DataTextField="AnchorText" DataValueField="URL" />
代码隐藏文件:在代码隐藏文件中,我将BL1
与列表进行数据绑定。
CCD_ 2。
其中UrlData类有三个公共属性
class UrlData
{
public string URL {get; set;}
public string AnchorText {get; set;}
public string TitleText {get; set;}
//public UrlData to initialise properties
}
您有两个选项:-
选项1:
循环浏览BulletedList中的项目,并添加title
属性,如下所示:-
protected void Page_PreRender(object sender, EventArgs e)
{
foreach (ListItem item in BL1.Items)
{
item.Attributes["title"] = GetToolTip(item.Value);
}
}
显然,您必须再次调用数据源才能获得相应的工具提示:-
private string GetToolTip(string url)
{
return UrlDataList().First(x => x.URL == url).TitleText;
}
假设UrlDataList()
将返回您绑定到BL1
的List<UrlData>
。显然,这不是最好的方法,因为我们要查询两次数据。
选项2:
相反,您可以使用中继器控制创建相同的行为(推荐方式):-
<asp:Repeater ID="rptDemo" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# String.Format("<a href='"{0}'" title='"{1}'">{2}</a>",Eval("ID"),Eval("Salary"),Eval("Country")) %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
简单地绑定如下:-
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
rptDemo.DataSource = UrlDataList();
rptDemo.DataBind();
}
}
您应该使用中继器:
绑定数据源:
protected void Page_Load(object sender, EventArgs e)
{
rprUrls.DataSource = listOfUrls;
rprUrls.DataBind();
}
你的中继器看起来像:
<asp:Repeater ID = "rprUrls" runat="server">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate>
<li><%# string.Format("<a href='"{0}'" title='"{2}'">{1}</a>", Eval("URL").ToString(), Eval("AnchorText").ToString(), Eval("TitleText").ToString()) %></li>
</ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>