Sharepoint Webpart 继承
Posted
技术标签:
【中文标题】Sharepoint Webpart 继承【英文标题】:Sharepoint Webpart inheritance 【发布时间】:2013-08-29 20:38:04 【问题描述】:我想为我的网站创建一堆 Webpart, 所有 webpart 周围都有一个共同的特殊边框。 所以他们的 .ascx 看起来像:
<div class="my_special_border">
<div class="web_part_content">
bla bla
</div >
</div>
我想避免每个 webpart 中的边框重复(主要是因为它不是一个“div”,而是一个更复杂的布局)。
我在考虑webpart继承, base 将提供边框,每个继承者将提供自己的内容。
所以我有一个“BaseWebpart”,我在其中放置了我的特殊边框。 如何使派生 WebPart 的内容进入基本边框? 我需要它易于使用,因此其他开发人员可以通过仅从我的 Base 继承来添加自己的 webpart。 所以基本上,我不想要 DerivedWebpart 中的任何特殊代码(除了继承)
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:我认为您必须在 basewebpart 后面的代码中执行此操作。在 basewebpart 中重写 Render 方法。在 base.Render 之前,写下 2 个 div 的开始标签。在 base.render 之后写结束标签。
然后让您的所有 Web 部件都从 BaseWebPart 继承。
免责声明:我自己没有尝试过,所以我只是在这里吐口水。但我认为这会奏效。
【讨论】:
我试过了,效果很好。我无法使用 htmlTextWriter WriteBeginTag / WriteEndTag 因为调用 base.Render() 搞砸了 DOM。所以我用简单的字符串代替 etc.【参考方案2】:我会尝试使用不同 Web 部件使用的通用资源文件。在后面的代码中,根据需要将资源文件的内容添加到渲染内容的顶部/底部。
【讨论】:
以上是关于Sharepoint Webpart 继承的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SharePoint 2013 中创建自定义优化面板
SharePoint 2013 WebPart 管理工具分享[开源]
Sharepoint:WebPart 和 silverlight 控件之间的通信
从一个 webpart 访问信息并在 sharepoint 2010 中的另一个 webpart 中使用它