本文介绍了如何添加在ASP.net第二个级别的项目符号列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下的HTML code这我想转换为ASP.net控制:
< UL>
<李类='积极'>< A HREF ='about_us.aspx'>关于美国和LT; / A>< /李>
<立GT;< A HREF =mission.aspx>使命与LT; / A>< /李>
<李类='有子'>< A HREF ='#'>领先与LT; / A>
< UL>
<立GT;< A HREF ='#'> president< / A>< /李>
<立GT;< A HREF ='#'>医疗主任和LT; / A>< /李>
<立GT;< A HREF ='#'>董事及LT董事会; / A>< /李>
<立GT;< A HREF ='#'>关键管理员< / A>< /李>
< / UL>
< /李>
<立GT;< A HREF ='history.aspx'>的历史和LT; / A>< /李>
<立GT;< A HREF ='community_support.aspx'>社群支持与LT; / A>< /李>
< / UL>
我把它转换为ASP.net是这样的:
< ASP:的BulletedList ID =bListMenu=服务器DISPLAYMODE =超链接>
< ASP:列表项类=主动VALUE =about_us.aspx>关于美国和LT; / ASP:ListItem的>
< ASP:ListItem的值=mission.aspx>使命与LT; / ASP:ListItem的>
< ASP:列表项类=有子VALUE =#>领导
< ASP:的BulletedList ID =bListMenuSub=服务器DISPLAYMODE =超链接>
< ASP:ListItem的值=#> president< / ASP:ListItem的>
< ASP:ListItem的值=#>医疗主任和LT; / ASP:ListItem的>
< ASP:ListItem的值=#>董事及LT董事会; / ASP:ListItem的>
< ASP:ListItem的值=#>关键管理员< / ASP:ListItem的>
< / ASP:BulletedList中>
< / ASP:ListItem的>
< ASP:ListItem的值=history.aspx>的历史和LT; / ASP:ListItem的>
< ASP:ListItem的值=community_support.aspx>社群支持与LT; / ASP:ListItem的>
< / ASP:BulletedList中>
在我访问的页面,我得到以下错误:
分析器错误消息:的'文本'属性'ASP:列表项'不允许子对象。源错误:
9号线:LT; ASP:ListItem的值=#>董事及LT董事会; / ASP:ListItem的>
10号线:LT; ASP:ListItem的值=#>关键管理员< / ASP:ListItem的>
11号线:LT; / ASP:BulletedList中>
第12行:LT; / ASP:ListItem的>
第13行:LT; ASP:ListItem的值=history.aspx>的历史和LT; / ASP:ListItem的>
源文件:/website/includeNav/aboutUsNav.inc行:11
解决方案
如何从的,BulletedList控件可以显示列表项为下列之一:
- 静态文本控件显示的文本不是交互式的。
- T:System.Web.UI.WebControls.HyperLink控制用户可以单击链接导航到另一个页面。您必须提供目标URL作为各个项的Value属性。
- LinkButton控件,用户可以点击单个项目和控制执行回发。
反正你就可以轻松实现你的任务,而是使用一个共同的转发器:
< ASP:直放站ID =直放站的EnableViewState =假=服务器OnItemDataBound =myItemDataBound>
<&HeaderTemplate中GT;
< UL>
< / HeaderTemplate中>
<&ItemTemplate中GT;
<立GT;<%#的eval(诺姆)%>
< ASP:的BulletedList ID =的BulletedList=服务器>< / ASP:BulletedList中>
< /李>
< / ItemTemplate中>
< FooterTemplate>
< / UL>
< / FooterTemplate>
< / ASP:直放站>
和填充ItemDataBound事件中的BulletedList:
保护无效myItemDataBound(对象发件人,RepeaterItemEventArgs E)
{
DataRowView的行= e.Item.DataItem为DataRowView的;
如果(空==行)
返回; DataSet1.table1Row currentRow = row.Row为DataSet1.table1Row; 如果(currentRow!= NULL)
{
BulletedList中bList = e.Item.FindControl(的BulletedList)作为BulletedList中; bList.Items.Add(富);
}
}
I have the following HTML code which I am trying to convert to ASP.net control:
<ul>
<li class='active'><a href='about_us.aspx'>ABOUT US</a></li>
<li><a href="mission.aspx">MISSION</a></li>
<li class='has-sub'><a href='#'>LEADERSHIP</a>
<ul>
<li><a href='#'>President</a></li>
<li><a href='#'>Medical Director</a></li>
<li><a href='#'>Board of Directors</a></li>
<li><a href='#'>Key Administrators</a></li>
</ul>
</li>
<li><a href='history.aspx'>HISTORY</a></li>
<li><a href='community_support.aspx'>COMMUNITY SUPPORT</a></li>
</ul>
I converted it to ASP.net like this:
<asp:BulletedList ID="bListMenu" runat="server" DisplayMode="HyperLink">
<asp:ListItem class="active" Value="about_us.aspx">ABOUT US</asp:ListItem>
<asp:ListItem Value="mission.aspx">MISSION</asp:ListItem>
<asp:ListItem class="has-sub" Value="#">LEADERSHIP
<asp:BulletedList ID="bListMenuSub" runat="server" DisplayMode="HyperLink">
<asp:ListItem Value="#">President</asp:ListItem>
<asp:ListItem Value="#">Medical Director</asp:ListItem>
<asp:ListItem Value="#">Board of Directors</asp:ListItem>
<asp:ListItem Value="#">Key Administrators</asp:ListItem>
</asp:BulletedList>
</asp:ListItem>
<asp:ListItem Value="history.aspx">HISTORY</asp:ListItem>
<asp:ListItem Value="community_support.aspx">COMMUNITY SUPPORT</asp:ListItem>
</asp:BulletedList>
When I visit the page, i get the following error:
Parser Error Message: The 'Text' property of 'asp:ListItem' does not allow child objects.
Source Error:
Line 9: <asp:ListItem Value="#">Board of Directors</asp:ListItem>
Line 10: <asp:ListItem Value="#">Key Administrators</asp:ListItem>
Line 11: </asp:BulletedList>
Line 12: </asp:ListItem>
Line 13: <asp:ListItem Value="history.aspx">HISTORY</asp:ListItem>
Source File: /website/includeNav/aboutUsNav.inc Line: 11
解决方案
How you can read from BulletedList Web Server Control, the BulletedList control can display list items as any of the following:
- Static text The text displayed by the control is not interactive.
- T:System.Web.UI.WebControls.HyperLink controls Users can click links to navigate to another page. You must provide a target URL as the Value property of individual items.
- LinkButton controls Users can click individual items and the control performs a postback.
Anyway you can easily achieve your task, using instead a common repeater:
<asp:Repeater ID="repeater" EnableViewState="False" runat="server" OnItemDataBound="myItemDataBound">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# Eval("nome") %>
<asp:BulletedList ID="bulletedList" runat="server"></asp:BulletedList>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
And populate the bulletedList in ItemDataBound event:
protected void myItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView row = e.Item.DataItem as DataRowView;
if (null == row)
return;
DataSet1.table1Row currentRow = row.Row as DataSet1.table1Row ;
if (currentRow != null)
{
BulletedList bList = e.Item.FindControl("bulletedList") as BulletedList;
bList.Items.Add("Foo");
}
}
这篇关于如何添加在ASP.net第二个级别的项目符号列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!