Показвано име на колона XSLT на SharePoint

В момента се опитвам да покажа името на колоната в персонализирана форма в SharePoint Designer. Използвам Sharepoint 2013, така че изгледът за дизайн вече не съществува :(. Формулярът се използва за създаване на нов елемент в персонализиран списък. Не мога да поставя името директно в шаблона, защото бих искал да използвам този шаблон в различни форми, така че имам за динамично възстановяване на името на моите колони. Проблемът е, че намерих само вътрешното име. Видях в маркера datafileds има двойки, при които вътрешното име се разчита на показваното име, но не намерих как да възстановя показваното име с това също.

Само възможно ли е? Някой има идея да ми помогне?

Сложих някакъв код, ако искате да погледнете моя код. Тази част търси атрибут, чието име съдържа „въпрос“ и извиква шаблона „title_line“, когато намери такъв. Функцията name() ми дава вътрешното име, което е pb...

<xsl:template match="Row">

 <xsl:for-each select="@*">
    <xsl:choose>                
        <xsl:when test="contains(name(),'Question')">
            <xsl:call-template name="title_line" >
                <xsl:with-param name="title" select="name()"/>
                <xsl:with-param name="class" select="'class_title'"/>
            </xsl:call-template>
        </xsl:when>

        <xsl:otherwise>
        </xsl:otherwise>    

   </xsl:choose>
 </xsl:for-each>

</xsl:template>

Тази част е за показване на заглавието:

<xsl:template name="title_line" >
        <xsl:param name="title" select="'no title'" />
        <xsl:param name="class" select="'no_class'" />
        <tr>
            <td colspan ="2" class="{$class}" style="font-weight:bold;font-size:medium">
                <xsl:value-of select="$title" />
            </td>
        </tr>
</xsl:template>

МОЕТО РЕШЕНИЕ:

Използвах JQuery 1.9.0 и SPServices 0.7.2

Импортирайте тези библиотеки в заглавката. ContentPlacdeHolderId PlaceHolderAdditionalPageHead е в долната част на страницата, не го видях и имах някои проблеми поради дубликата...) Относно източника, активирах публикуването и създадох папка Scripts в стиловете Библиотека.

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
    <SharePoint:DelegateControl runat="server" ControlId="FormCustomRedirectControl" AllowMultipleControls="true"/>
    <SharePoint:UIVersionedContent UIVersion="4" runat="server">
        <ContentTemplate>
            <SharePoint:CssRegistration Name="forms.css" runat="server"/>

            <!-- add JQuery 1.9.0-->
            <script id ="JQUERY_ID" type="text/javascript" src="../../Style%20Library/Scripts/jquery-1.9.0.js">
            </script>   

            <!-- add SPServices 0.7.2 -->
            <script id ="JQUERY_ID" type="text/javascript" src="../../Style Library/Scripts/jquery.SPServices-0.7.2.js">
            </script>   

        </ContentTemplate>
    </SharePoint:UIVersionedContent>
</asp:Content>

Сега показването на заглавието е:

<xsl:template name="title_line" >
    <xsl:param name="title" select="'no title'" />
    <xsl:param name="class" select="'no_class'" />
    <tr>
        <td colspan ="2" class="{$class}" style="font-weight:bold;font-size:medium">
            <script type="text/javascript">
                var static_name = &apos;<xsl:value-of select="$title" />&apos;;
                var display_name = $().SPServices.SPGetDisplayFromStatic ({ 
                     listName: "listeperso",
                     columnStaticName: static_name
                });
                document.write(display_name);
            </script>
        </td>
    </tr>

</xsl:template>

Просто трябва да имам името на списъка динамично и всичко свърши.

Cya.

РЕДАКТИРАНЕ : скриптът с името на списъка динамично

<script type="text/javascript">
    var list_name = $().SPServices.SPListNameFromUrl();
    var static_name = &apos;<xsl:value-of select="$title" />&apos;;
    var display_name = $().SPServices.SPGetDisplayFromStatic ({ 
        listName : list_name,
        columnStaticName: static_name
    });
    document.write(display_name);
</script>

listName използва или името на списъка, или ИД на списъка. SPListNameFromUrl връща ИД на списъка.


person Loic    schedule 26.04.2013    source източник


Отговори (2)


Виждам, че някой има идея. Намирам Javascript библиотека SPServices, която може да преобразува статичното име в показваното име.

Връзка

Новото ми е да интегрирам скрипта. Опитах се да го сложа в заглавката така:

<asp:Content ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
    <script type="text/javascript" src="../../Style%20Library/Scripts/jquery-1.9.0.js">
    </script>   
    <script type="text/javascript" >
       var azerty="jquery script";
       alert($azerty);
       $(document).ready(function() {
           alert("jQuery");
       });
    </script>
</asp:Content>

Но импортирането не се показва в генерираната страница. Някой има идея?

person Loic    schedule 29.04.2013

Използвах JQuery 1.9.0 и SPServices 0.7.2

Импортирайте тези библиотеки в заглавката. ContentPlacdeHolderId PlaceHolderAdditionalPageHead е в долната част на страницата, не го видях и имах някои проблеми поради дубликата...) Относно източника, активирах публикуването и създадох папка Scripts в стиловете Библиотека.

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
    <SharePoint:DelegateControl runat="server" ControlId="FormCustomRedirectControl" AllowMultipleControls="true"/>
    <SharePoint:UIVersionedContent UIVersion="4" runat="server">
        <ContentTemplate>
            <SharePoint:CssRegistration Name="forms.css" runat="server"/>

            <!-- add JQuery 1.9.0-->
            <script id ="JQUERY_ID" type="text/javascript" src="../../Style%20Library/Scripts/jquery-1.9.0.js">
            </script>   

            <!-- add SPServices 0.7.2 -->
            <script id ="JQUERY_ID" type="text/javascript" src="../../Style Library/Scripts/jquery.SPServices-0.7.2.js">
            </script>   

        </ContentTemplate>
    </SharePoint:UIVersionedContent>
</asp:Content>

Сега показването на заглавието е:

<xsl:template name="title_line" >
    <xsl:param name="title" select="'no title'" />
    <xsl:param name="class" select="'no_class'" />
    <tr>
        <td colspan ="2" class="{$class}" style="font-weight:bold;font-size:medium">
            <script type="text/javascript">
                var static_name = &apos;<xsl:value-of select="$title" />&apos;;
                var display_name = $().SPServices.SPGetDisplayFromStatic ({ 
                     listName: "listeperso",
                     columnStaticName: static_name
                });
                document.write(display_name);
            </script>
        </td>
    </tr>

</xsl:template>

Просто трябва да имам името на списъка динамично и всичко свърши.

Cya.

РЕДАКТИРАНЕ : скриптът с името на списъка динамично

<script type="text/javascript">
    var list_name = $().SPServices.SPListNameFromUrl();
    var static_name = &apos;<xsl:value-of select="$title" />&apos;;
    var display_name = $().SPServices.SPGetDisplayFromStatic ({ 
        listName : list_name,
        columnStaticName: static_name
    });
    document.write(display_name);
</script>

listName използва или името на списъка, или ИД на списъка. SPListNameFromUrl връща ИД на списъка.

person Loic    schedule 29.04.2013