为从数据库中提取的导航创建一个列表视图
本文关键字:一个 视图 列表 创建 数据库 提取 导航 | 更新日期: 2023-09-27 18:08:47
我是Asp.net的新手,我目前正在尝试将html页面转换为Asp.net网站。导航与css配合得很好,并使用无序列表填充。
<ul class="menu" id="responsive">
<li><a href="General.aspx" runat="server" id="currentGeneral"><i class="home"></i> Overview</a></li>
<li><a href="Calendarized.aspx" runat="server" id="currentCalendarized" ><i class="calendar"></i> Calendar</a></li>
</ul>
现在,我移动到asp.net和取决于谁登录,导航将改变。
在网站。Master我创建了
<asp:ListView ID="ListViewMenu" runat="server">
<LayoutTemplate>
<ul class="menu" id="responsive" runat="server">
<asp:PlaceHolder ID="menuContainer" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li><a href="<%#Eval ("href") %>" runat="server" id="<%#Eval ("id") %>"><i class="<%#Eval ("class") %>"></i><%#Eval ("text") %></a></li>
</ItemTemplate>
</asp:ListView>
然后我创建了一个存储过程,它将根据用户提取我需要的表。
ID href id class text
1 general.aspx currentGeneral home overview
然后在Site.Master.cs页面我创建了一个类来填充page_PreRender
上的菜单 void PopulateMenu()
{
DataAccess da = new DataAccess();
da.AddParameter("ID", ID, DataAccess.SQLDataType.SQLInteger, 4);
SiteMenu = da.runSPDataSet("Portal_MenuCreate");
ListViewMenu.DataSource = SiteMenu;
ListViewMenu.DataBind();
}
我认为这将工作,但我得到以下
Parser Error: The server tag is not well formed.
<li><a href="<%#Eval ("href") %>" runat="server" id="<%#Eval ("id") %>"><i class="<%#Eval ("class") %>"></i><%#Eval ("text") %></a></li>
谁知道我做错了什么,也许这不是最好的方法?谢谢你的建议。
编辑—ID - currentgeneral和runat"server"的原因是,如果是当前页面,我需要在模板中设置ID为current(更改选项卡颜色)
switch (pageName)
{
case "General.aspx":
currentGeneral.Attributes["class"] = "active";
break;
case "Calendarized.aspx":
currentCalendarized.Attributes["class"] = "active";
break;
runat="server"
中不能有id="<%#Eval ('id') %>"
<li><a href='<%#Eval ("href") %>' runat="server" id="HyperLink1">
<i class='<%#Eval ("class") %>'></i><%#Eval ("text") %></a></li>
你甚至不需要runat="server"
和id
,如果你不访问超链接在服务器端。如果是这样,请删除它们以使代码更干净-
<li><a href='<%#Eval ("href") %>' class='<%#Eval ("id") %>'>
<i class='<%#Eval ("class") %>'></i><%#Eval ("text") %></a></li>
供参考:如果你需要css样式,请使用class
而不是id
尝试使用单引号,以便正确识别双引号
<li><a href="<%#Eval ('href') %>" runat="server" id="<%#Eval ('id') %>"><i class="<%#Eval ('class') %>"></i><%#Eval ('text') %></a></li>