以编程方式将嵌套的转发器控件添加到N级?

时间:2010-03-23 10:53:28

标签: asp.net

我正在创建导航菜单。我要渲染转发器控制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>

3 个答案:

答案 0 :(得分:0)

如果您的数据是动态的,那就是这样做的一种方式。除非我不使用转发器,否则我会使用ListView,如果它是.Net 3.5或更高版本。它们比中继器更新,通常更灵活。

或者您可以使用Menu直接动态绑定到您的数据。

您还可以从存储位置检索整个菜单层次结构,并输出您自己的所有格式。

答案 1 :(得分:0)

向转发器添加动态控件非常棘手。正如凯文建议的那样,我肯定会采用一种一次性格式。

或者,为N个级别定义合理的上限,并对控件进行decaratively嵌套。你真的需要超过三个菜单级别吗?从UI的角度来看,这是一场噩梦。 (“现在再次使用这个工具???我刚用了5分钟......”)

答案 2 :(得分:0)

转发器并非真正设计用于N嵌套。主要的问题是你要在ItemDataBound事件中创建它们,并且试图为新控件声明新的事件处理程序会很麻烦。

最好的方法是使用Tree控件。

或者,如果你真的需要指定模板声明,即在aspx中定义它,然后编写自己的控件,它为“节点”公开模板,但行为就像树控件一样。