2013-04-26 4 views
0

В настоящее время я пытаюсь отобразить имя столбца в пользовательской форме в SharePoint Designer. Я использую Sharepoint 2013, поэтому дизайн-вид больше не существует :(. . Форма используется для создания нового элемента в настраиваемом списке. Я не могу положить имя непосредственно в tempate, потому что я хотел бы использовать этот шаблон в разных формах, поэтому Мне нужно восстановить имя столбца динамически. Проблема в том, что я нашел только внутреннее имя. Я видел в теге datafileds пары, где внутреннее имя зависит от отображаемого имени, но я не нашел, как восстановить отображаемое имя с этим тоже.Отображаемое имя столбца SharePoint XSLT

Является ли это только возможно? Кто-то представление о том, чтобы помочь мне?

Я поставил код, если и хотят, чтобы посмотреть на мой код. Эта часть ищет атрибут, в котором имя содержит «вопрос» и вызывает шаблон «title_line» при его обнаружении. Имя функции() дает мне внутреннее имя, то есть рь ...

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

МОЕ РЕШЕНИЕ:

I используемые 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.

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> 

ИМЯ_СПИСКА использует либо имя списка либо список ID. SPListNameFromUrl возвращает идентификатор списка.

ответ

0

Я использовал 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.

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> 

ИМЯ_СПИСКА использует либо имя списка либо список ID. SPListNameFromUrl возвращает идентификатор списка.

0

У меня есть идея. Я нахожу Javascript-библиотеку SPServices, которая может преобразовывать статическое имя t отображаемое имя.

Link

Мой новый заключается в интеграции скрипта. Я пытался поставить его в заголовок так:

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

Но импорт не появляется в сгенерированной страницы. У кого-то есть идея?

Смежные вопросы