代码之家  ›  专栏  ›  技术社区  ›  Mikael Svenson

是否可以在onet.xml中分配Web部件ID?

  •  0
  • Mikael Svenson  · 技术社区  · 15 年前

    我做了一个有三个区域的页面。在onet.xml中,我定义了三个Web部件,它们将在网站创建时添加到页面中。是否可以为onet.xml中的每个Web部件分配一个ID,或者是否需要编写一个连接连接的功能接收器?

    我最初的想法是在页面上使用,但后来我需要Web部件的ID。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Kusek    15 年前
    <AllUsersWebPart WebPartZoneID="TopColumnZone" WebPartOrder="1"><![CDATA[
                <webParts>
                    <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
                        <metaData>
                            <type name="Microsoft.SharePoint.Publishing.WebControls.TableOfContentsWebPart,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" />
                            <importErrorMessage>$Resources:cmscore,WebPartImportError;</importErrorMessage>
                        </metaData>
                        <data>
                            <properties>
                                <property name="Title" type="string">$Resources:cmscore,PublishingLayouts_TOCWebPart_Title;</property>
                                <property name="Description" type="string">$Resources:cmscore,PublishingLayouts_TOCWebPart_Description;</property>
                                <property name="ShowPages" type="bool">True</property>
                                <property name="IncludeContentFromStartingLocation" type="bool">False</property>
                                <property name="ChromeType" type="chrometype">None</property>
                                <property name="ChromeState" type="chromestate">Normal</property>
                                <property name="HelpUrl" type="string">/_layouts/help.aspx</property>
                            </properties>
                        </data>
                    </webPart>
                </webParts>]]>
            </AllUsersWebPart>
    

    如果你看上面的代码片段,所有的属性都是在properties标记中定义的,你是否尝试向它添加一个ID,我猜它应该工作了。

    <property name="ID" type="string">WebPart1</property>
    
        2
  •  0
  •   Mikael Svenson    15 年前

    我找到了两个解决方案。一种是将Web部件添加到页面布局,但不在区域中。然后你可以用身份证把它们挂起来。

    但我所寻求的解决方案是在我的一个Web部件中创建一个“initconnection”函数,它在页面第一次运行时挂接所有其他Web部件。

    我认为对特性装订也可以这样做,但我所寻求的解决方案是简单而代码少。

    推荐文章