我正在尝试创建一个多级菜单的用户控件。我已经创建了第一级控件,并且这个控件可以工作。使用repeater迭代并实例化自己的MenuButton类。每个MenuButton对象具有相同类型的子元素。
问题是: 如何在MenuButton.aspx文件中创建MenuButton控件?
我正在使用以下方式使用repeater:
<%@ Control ClassName="MenuButton" Language="C#" AutoEventWireup="true" CodeBehind="MenuButton.ascx.cs"
Inherits="MenuSolution._12.TEMPLATE.CONTROLTEMPLATES.MenuButton, MenuSolution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=284eb573cd58385d" %>
<%@ Register TagPrefix="a" Namespace="MenuSolution._12.TEMPLATE.CONTROLTEMPLATES"
Assembly="MenuSolution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=284eb573cd58385d" %>
<li runat="server">
<% if (Children.Count == 0)
{ %>
<a href="<%# Url %>"><%# Description %></a>
<% }
else
{
%>
<a href="<%# Url %>" class="dropdown-toggle" data-toggle="dropdown">
<%# Description %><b class="caret"></b></a>
<ul class="dropdown-menu multi-level">
<asp:Repeater ID="repDynamicRows" runat="server">
<ItemTemplate>
<a:MenuButton runat="server" id="button" url='<%# DataBinder.Eval(Container.DataItem, "Url") %>'
children='<%# DataBinder.Eval(Container.DataItem, "ChildItems") %>' description='<%# DataBinder.Eval(Container.DataItem, "Description") %>' />
</ItemTemplate>
</asp:Repeater>
</ul>
<%
}
%>
</li>
这段代码没有将MenuButton代码嵌入最终的HTML中。我尝试像这样注册该控件:
<%@ Register TagPrefix="a" TagName="MenuButton" Src="~/_controltemplates/MenuButton.ascx" %>
但是这会导致循环引用。我该怎么做呢?