用css类包装自定义webpart

时间:2012-02-29 09:44:39

标签: sharepoint

我正在尝试在SharePoint中标记自定义Web部件。我正在尝试向类ms-WPHeader添加一些按钮,为此我想用div包装整个自定义Web部件或者为它添加一个css类。我不能在我的自定义Web部件xsl中执行此操作,因为我正在尝试更改sharepoint中的某些标准行为。

我尝试了很多东西,但现在我用jQuery添加了按钮和高度。

如何添加课程或自定义Web部件?

3 个答案:

答案 0 :(得分:5)

你没有提到你是如何编写webpart的,我将尝试介绍几种可能性:

通过SharePoint Designer(听起来就像你提到XSL一样,除非它是一个可以在浏览器中编辑的搜索webpart)

  1. 你可以简单地用一个DIV或类似东西包装你的WebPart(或包装整个WP区域) <div id="customWP"><WebPartPages:WebPartZone .../></div>

  2. 如果您有权访问XSL(考虑使用DataFormWebPart或类似内容),您可以使用DIV内部包裹<xsl:template name="dvt_1">,它将在WP的所有情况下都可见,即使在空结果中也是如此。

  3. 如果这是ContentQueryWP,您需要编辑样式库中的Header.xsl文件并创建一个新标题(并在工具部分中设置):

    <xsl:template name="CustomBranded" match="*[@GroupStyle='CustomBranded']" mode="header">
      <div class="groupheader item MYCUSTOMWP">
      <xsl:call-template name="OuterTemplate.GetGroupName">
          <xsl:with-param name="GroupName" select="@*[name()=$Group]"/>
          <xsl:with-param name="GroupType" select="$GroupType"/>
      </xsl:call-template>
    </div>
    

  4. 在Visual Studio中,您可能正在使用Visual Web部件,并且可以使用DIV轻松包装用户控件

  5. 可以在混合中添加jQuery并通过Title找到WP:

    $("h3.ms-WPTitle span:contains('Web Part Title')").closest("td[id*=_WebPartWP]").addClass("myCustomWP")
    

    现在你的WP将完全包装它.myCustomWP

  6. 这些是我能从头脑中记住的。

答案 1 :(得分:0)

通过JavaScript添加所需的类(您可以通过webpart添加)。

答案 2 :(得分:0)

我多次这样做,从来没有遇到过问题。 首先,您必须在Visual Studio项目中映射Layouts文件夹,然后在那里插入CSS(但我猜您已经这样做了)

然后你必须在你的代码中执行此操作:

CssLink cssLink = new CssLink();
cssLink.DefaultUrl="/_layouts/PROJECTNAME/styles/FILE.css";
        if (!this.Page.Header.Controls.Contains(cssLink)) {
            this.Page.Header.Controls.Add(cssLink);
        }

此致

佩德罗

Mixit.nl