使用c#为sharepoint中的webpart布局表单

时间:2009-03-03 14:39:14

标签: c# sharepoint web-parts

我在c#中为sharepoint创建了一个webpart。 它基本上是一个带有文本框,文字,验证器和按钮的表单。

我不确定如何渲染此表单以使其看起来很漂亮。 布局等完全在这个c#类中完成。

目前开始我只是覆盖CreateChildControls()方法 并使用以下内容添加每个表单控件:this.Controls.Add(submitButton);

关于如何最好地布局此表单的任何想法?

感谢。

5 个答案:

答案 0 :(得分:3)

创建自定义webpart时,我也更喜欢通过覆盖 CreateChildControls() Render()方法来实现它们。在 Render()方法中,我完全控制了html输出,我可以通过调用 this.someInnerControl.RenderControl(writer)来渲染我的内部控件。

完全控制html输出也可以轻松使用CSS设置html的样式。正如其他人建议的那样,使用外部CSS文件并将styes应用于html元素上的 class 属性或ASP.NET Web控件上的 CssClass 属性。

当我实现webparts时,不需要特殊的品牌,我更喜欢重用SharePoint定义的CSS类。这将确保我的webpart在视觉上与SharePoint提供的webpart类似,并且我保持一致的外观。

使用SharePoint定义的CSS样式时,您应该知道您的html输出。某些CSS类需要特定的html结构才能正确呈现。您始终可以使用浏览器“查看源”来检查您尝试模仿的SharePoint元素的html。

答案 1 :(得分:1)

我建议从现有的sharepoint页面获取源代码并使用sharepoint定义的样式。 This link to the styles in 2003已经过时了,但仍然是一个很好的入门指南。大多数CSS类名都没有改变。

答案 2 :(得分:0)

在我的网页部分中,我在解决方案中包含css文件,并使用以下内容将其注入页面:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false);

答案 3 :(得分:0)

您可以覆盖RenderContents(...)方法,以便以任何方式手动呈现HTML。这包括添加您想要/使用的任何css包括,脚本包括等。

您可以将子控件渲染为字符串然后输出它们,但您可能不应该调用base.RenderContents(...)方法。

请确保您不要忘记渲染您的孩子控件。

答案 4 :(得分:0)

如果您在设计时看到它很重要,请使用在Web部件中嵌入用户控件的SmartPart。 (如果您不知道,可以使用Visual Studio中的工具设计用户控件。)

如果您更喜欢手动编码,那么您就是在正确的轨道上。只需在CreateChildControls()方法中为控件创建和设置初始属性,然后像往常一样使用this.Controls.Add()

在这两种情况下,尽可能使用CssClass属性,这样您就可以修改CSS文件中的外观,而无需重新编译。您可以对CSS类名称进行硬编码,但最好使用Web部件属性或外部配置源来存储这些属性。在您的母版页中引用CSS文件,或使用本答案中提到的其他技术将其注入页面。

MSDN文章Web Parts in Windows SharePoint ServicesCreating a Basic Web Part也可能会有所帮助。