我正在创建导航菜单。我要渲染转发器控制ul-li标签和menuitems可以达到N级。我需要在子控件中添加一个子转发器控件吗?
编辑: 示例 - ul-li可以转到n级
<ul>
<li>
<ul>
<li>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</li>
<li></li>
<li></li>
</ul>
</li>
<li></li>
<li></li>
</ul>
答案 0 :(得分:0)
如果您的数据是动态的,那就是这样做的一种方式。除非我不使用转发器,否则我会使用ListView,如果它是.Net 3.5或更高版本。它们比中继器更新,通常更灵活。
或者您可以使用Menu直接动态绑定到您的数据。
您还可以从存储位置检索整个菜单层次结构,并输出您自己的所有格式。
答案 1 :(得分:0)
向转发器添加动态控件非常棘手。正如凯文建议的那样,我肯定会采用一种一次性格式。
或者,为N个级别定义合理的上限,并对控件进行decaratively嵌套。你真的需要超过三个菜单级别吗?从UI的角度来看,这是一场噩梦。 (“现在再次使用这个工具???我刚用了5分钟......”)
答案 2 :(得分:0)
转发器并非真正设计用于N嵌套。主要的问题是你要在ItemDataBound事件中创建它们,并且试图为新控件声明新的事件处理程序会很麻烦。
最好的方法是使用Tree控件。
或者,如果你真的需要指定模板声明,即在aspx中定义它,然后编写自己的控件,它为“节点”公开模板,但行为就像树控件一样。