在Menu控件中重写render方法的正确方法是什么

时间:2012-07-30 16:57:21

标签: c# asp.net html menu override

我确实进行了调查,但我没有找到有关我的问题的良好和建设性的信息。这就是为什么我的问题是关于我想要扩展的控件并以我自己的方式呈现控件。我正在使用SharePoint但是SharePoint aspnet控件是密封的,因此我无法从中获取。

我所拥有的菜单控件来源于: System.Web.UI.WebControls.Menu 要么 Microsoft.SharePoint.WebControls.AspMenu 我没有看到任何重大差异。我有数据源/数据提供者。

SiteMapDataSource dataSource = this.GetDataSource() as SiteMapDataSource;
SiteMapProvider provider = dataSource.Provider;

所以我拥有所有必需的元素。

现在基础classe有很多不同的方法我可以覆盖,但我不知道如何开始。

我应该在哪里以及如何创建要渲染的控件? 我在哪里渲染这些控件? 他们存在html的控制?

<ul>
 <li> </li>
 ...
</ul>

如何根据提供商构建菜单?

只是一个小小的更新,以提供完整的图片: 我这样做是因为我需要将第一个控件渲染为链接和文本,而不是将图像设置为提供的网址。

1 个答案:

答案 0 :(得分:1)

您好,您可以在菜单上使用扩展方法

public static void YourExtension(this Menu control)
{
     control.YourPropertyTarget = ....;
}