【问题标题】:laying out a form using c# for a webpart in sharepoint使用 c# 为 sharepoint 中的 webpart 布局表单
【发布时间】:2010-10-11 00:50:00
【问题描述】:

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

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

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

关于如何最好地布局此表单有什么想法吗?

谢谢。

【问题讨论】:

    标签: c# sharepoint web-parts


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

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

          只要确保不要忘记渲染子控件即可。

          【讨论】:

            【解决方案5】:

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

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

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

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

            【讨论】:

              猜你喜欢
              • 2011-10-30
              • 2011-01-22
              • 2012-08-23
              • 2010-12-28
              • 2011-05-24
              • 1970-01-01
              • 1970-01-01
              • 2013-07-27
              • 2021-03-22
              相关资源
              最近更新 更多