2013-04-26 121 views
0

我当前尝试在SharePoint Designer中以自定义窗体显示列名。我使用Sharepoint 2013,所以设计视图不再存在:(。 表单用于在自定义列表中创建一个新元素。 我不能直接在tempate中输入名称,因为我想以不同的形式使用此模板 问题是我只找到了内部名称 我在datafileds标签中看到有些情侣的内部名称依赖于显示名称,但我没有找到如何恢复显示名称与这一点。SharePoint XSLT列显示名称

仅仅是这可能吗?有人有一个想法,以帮助我吗?

我把一些代码,如果u想看看我的代码。 这部分查找名称包含“question”的属性,并在找到它时调用模板“title_line”。函数名()给我的内部名称,即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位于页面底部,我没有看到它,并且因为重复而出现一些问题...) 关于源代码,我激活了发布并创建了一个文件夹脚本到样式库中。

<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使用列表中的每个名称列表中的每个ID。 SPListNameFromUrl返回列表ID。

回答

0

我使用了JQuery 1.9。0和SPServices 0.7.2

将这些库导入标题。 ContentPlacdeHolderId PlaceHolderAdditionalPageHead位于页面底部,我没有看到它,并且因为重复而出现一些问题...) 关于源代码,我激活了发布并创建了一个文件夹脚本到样式库中。

<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使用列表中的每个名称列表中的每个ID。 SPListNameFromUrl返回列表ID。

0

我看到有人有一个想法。 我找到一个Javascript库SPServices,它可以将静态名称转换为显示名称。

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> 

但进口犯规出现在生成的页面。有人有一个想法?