1

I have created a custom page layout in a SharePoint 2013 Publishing website.

On this page I've added a web part snippet pointing to a list on the same site.

This list contains a numeric column called KBID which holds the unique ID of a publishing page.

In short, I want every page to display my list viewing only the corresponding KBID's.

At the moment, my web part snippet looks like this:

                <!--CS: Start Web Part Zone Snippet-->
            <!--SPM:<%@Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>-->
            <div xmlns:ie="ie">
                <!--MS:<WebPartPages:WebPartZone runat="server" ID="xaab78734df6f4f649d928272932d54fd" AllowLayoutChange="False" AllowPersonalization="False" FrameType="TitleBarOnly" Orientation="Vertical">-->
                    <!--MS:<ZoneTemplate>-->
                        <!--CS: Start Contacts Snippet-->
                        <!--SPM:<%@Register Tagprefix="ab9da2256"  Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>-->
                        <!--MS:<ab9da2256:XsltListViewWebPart runat="server" ViewFlag="" ViewSelectorFetchAsync="False" InplaceSearchEnabled="False" ServerRender="False" ClientRender="False" InitialAsyncDataFetch="False" WebId="00000000-0000-0000-0000-000000000000" IsClientRender="False" GhostedXslLink="main.xsl" ViewGuid="" EnableOriginalValue="False" ViewContentTypeId="" ListName="{9E243D58-72C3-41C4-B21F-7496563B7238}" ListId="9e243d58-72c3-41c4-b21f-7496563b7238" PageSize="-1" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" Title="Contacts" FrameType="Standard" SuppressWebPartChrome="False" Description="" IsIncluded="True" ZoneID="" PartOrder="0" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" CatalogIconImageUrl="/_layouts/15/images/itgen.png?rev=23" TitleUrl="/sites/publishing/Lists/Contacts" DetailLink="/sites/publishing/Lists/Contacts" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Cannot import this Web Part." PartImageLarge="/_layouts/15/images/itgen.png?rev=23" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_14cf4b1c_b9cd_4382_9c93_8f7368fda8c4" ChromeType="TitleAndBorder" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{14cf4b1c-b9cd-4382-9c93-8f7368fda8c4}" __AllowXSLTEditing="true" WebPart="true" Height="" Width="">-->
                            <!--PS: Start of READ-ONLY PREVIEW (do not modify)--><div class="ms-webpart-chrome ms-webpart-chrome-fullWidth "><div WebPartID="00000000-0000-0000-0000-000000000000" HasPers="true" id="WebPartg_14cf4b1c_b9cd_4382_9c93_8f7368fda8c4" width="100%" class="noindex " OnlyForMePart="true" allowDelete="false" style=""><div id="WebPartContent">The DataFormWebPart does not provide a design-time preview.</div><div class="ms-clear"></div></div></div><!--PE: End of READ-ONLY PREVIEW-->
                        <!--MS:<ParameterBindings>-->
                            <!--MS:<ParameterBinding Name="dvt_sortdir" Location="Postback;Connection">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="dvt_sortfield" Location="Postback;Connection">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue="">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="dvt_firstrow" Location="Postback;Connection">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="OpenMenuKeyAccessible" Location="Resource(wss,OpenMenuKeyAccessible)">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="open_menu" Location="Resource(wss,open_menu)">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="select_deselect_all" Location="Resource(wss,select_deselect_all)">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="idPresEnabled" Location="Resource(wss,idPresEnabled)">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)">--><!--ME:</ParameterBinding>-->
                            <!--MS:<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)">--><!--ME:</ParameterBinding>-->
                        <!--ME:</ParameterBindings>-->
                        <!--MS:<DataFields>--><!--ME:</DataFields>-->
                        <!--MS:<XmlDefinition>-->
                            <!--MS:<View Name="{C9F57178-3F34-4293-B8DD-12AC5210D6DB}" MobileView="TRUE" Type="HTML" Hidden="TRUE" DisplayName="" Url="/sites/publishing/SitePages/sitepage1.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/15/images/generic.png?rev=23">-->
                                <!--MS:<Query>-->
                                    <!--MS:<OrderBy>-->
                                        <!--MS:<FieldRef Name="LinkTitle">--><!--ME:</FieldRef>-->
                                    <!--ME:</OrderBy>-->
                                    <!--MS:<Where>-->
                                        <!--MS:<Eq>-->
                                            <!--MS:<FieldRef Name="KBID">--><!--ME:</FieldRef>-->
                                            <!--MS:<Value Type="Number">--><!--SPM:<SharePoint:FieldValue FieldName="ID" runat="server" id="idb" ControlMode="display" />--><!--ME:</Value>-->
                                        <!--ME:</Eq>-->
                                    <!--ME:</Where>-->
                                <!--ME:</Query>-->
                                <!--MS:<ViewFields>-->
                                    <!--MS:<FieldRef Name="LinkTitle">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="Job_x0020_Title">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="Phone">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="GSM">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="Fax">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="E_x002d_mail">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="Website">--><!--ME:</FieldRef>-->
                                    <!--MS:<FieldRef Name="Remarks">--><!--ME:</FieldRef>-->
                                <!--ME:</ViewFields>-->
                                <!--MS:<RowLimit Paged="TRUE">--><!--SPM:10--><!--ME:</RowLimit>-->
                                <!--MS:<Aggregations Value="Off">--><!--ME:</Aggregations>-->
                                <!--MS:<JSLink>--><!--SPM:clienttemplates.js--><!--ME:</JSLink>-->
                                <!--MS:<XslLink Default="TRUE">--><!--SPM:main.xsl--><!--ME:</XslLink>-->
                                <!--MS:<Toolbar Type="Standard">--><!--ME:</Toolbar>-->
                            <!--ME:</View>-->
                        <!--ME:</XmlDefinition>-->
                        <!--ME:</ab9da2256:XsltListViewWebPart>-->
                        <!--CE: End Contacts Snippet-->
                    <!--ME:</ZoneTemplate>-->
                <!--ME:</WebPartPages:WebPartZone>-->
            </div>
            <!--CE: End Web Part Zone Snippet-->

and I'm pretty sure that I'm doing something wrong here:

<!--MS:<Value Type="Number">--><!--SPM:<SharePoint:FieldValue FieldName="ID" runat="server" id="idb" ControlMode="display" />--><!--ME:</Value>-->

I've tried using this variable (pointing to the ID displayed on the page) but that won't work either:

<!--SPM:[PageFieldValue:ID]-->

Edit 25/08: I found out that everything I've been filling in so far doesn't return any value, resulting in only returning the list items with KBID 0 (or null/void).

The problem seems that I can't pass a pagefield to a webpart on the same page. I want to pass the Field ID of the Pagelibrary to the listwebpart. Can this be done somehow (perhaps with a global variable?). Can someone show me the syntax to do this?

Please ask more information if something isn't clear.

1 Answer 1

0

Tricky, but solved it myself.

Add a hidden html field to your page:

<input type="hidden" name="searchText" id="searchText" />

Add a Parameterbinding to your LiestViewWebPart pointing to your hidden HTML field:

<!--MS:<ParameterBinding Name="SearchTextView" Location="Form(searchText)" DefaultValue="0" />--><!--ME:</ParameterBinding>-->

Next use your parameter in your Where clause like so:

<!--MS:<Value Type="Number">-->{SearchTextView}<!--ME:</Value>-->

So now everything in the input:hidden will be used in your query. So now we need to update our hidden so it contains the right value. We do this by using JQuery like so:

<script type="text/javascript">//<![CDATA[
$(document).ready(function() {
    $("#searchText").val(_spPageContextInfo.pageItemId);
    $('#ManualRefresh').click();
});
//]]>

The first line fills the Hidden input. The second line refreshes the web part 1 more time because the hidden is filled after page (and webpart) have loaded.

Also important is that you set these parameters in your listview:

AsyncRefresh="True" ManualRefresh="True"

AsyncRefresh allows us to refresh the webpart withouth refreshing the entire page.

ManualRefresh displays the refreshbutton users can click on, and we need to programmatically click on to refresh 1 more time after pageload.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.