0

現在、SharePoint Designer のカスタム フォームに列名を表示しようとしています。私はSharepoint 2013を使用しているので、デザインビューはもう存在しません:(。フォームは、カスタムリストに新しい要素を作成するために使用されます。このテンプレートを別のフォームで使用したいので、テンプレートに名前を直接入れることはできません。列の名前を動的に回復する. 問題は、内部名しか見つからなかったことです. datafileds タグに、内部名が表示名に依存しているカップルがあるのを見ましたが、それで表示名を回復する方法がわかりませんでしたそれも。

それは可能ですか?誰かが私を助けるアイデアを持っていますか?

私のコードを見たい場合は、いくつかのコードを入れます。この部分は、名前に「question」が含まれる属性を探し、見つかった場合はテンプレート「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>

リストの名前を動的に取得する必要があるだけで、それで終わりです。

ちゃ。

EDIT : リスト名を動的に持つスクリプト

<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 は、リスト名またはリスト ID のいずれかを使用します。SPListNameFromUrl はリスト ID を返します。

4

2 に答える 2

0

私は誰でもアイデアを持っているのを見ます。静的名を表示名に変換できる 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>

しかし、インポートは生成されたページに表示されません。誰かがアイデアを持っていますか?

于 2013-04-29T07:09:36.383 に答える
0

I used JQuery 1.9.0 and SPServices 0.7.2

Import these libraries into the header. The ContentPlacdeHolderId PlaceHolderAdditionalPageHead is at the bottom of the page, i didnt see it and have some problems because of the duplicate...) About the source, i activated the publishing and create a folder Scripts into the Styles Library.

<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>

Now the display of the title is :

<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>

I just need to have the name of the list dynamically and it's over.

Cya.

EDIT : the script with the list name dynamically

<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 uses either the list name either the list ID. SPListNameFromUrl returns the list ID.

于 2013-04-29T12:08:31.967 に答える