2013-01-16 44 views
2

我有一個sharepoint 2010列表,裏面有一列「proposalID」。該列中的值是 5555-01,5555-02,5555-03,6666-01,6666-02等。sharepoint dataview webpart xslt group by left characters of a column

我想按短劃線左側的4個字符進行分組。因此,該分組將顯示5555項下的3個項目和6666組下的2個項目等。

使用Sharepoint Designer 2010,我添加了一個空白dataview webpart,連接到我的列表,並從功能區中選擇按提案進行排序ID列。它呈現了下面的xsl ddwrt代碼:

我一直在嘗試各種語法來更改字符串函數,但沒有成功。我試圖從這篇文章中收集一些知識,http://jamestsai.net/Blog/post/SharePoint-Data-View-Data-Form-Web-Part-Group-items-by-month-on-DateTime-field.aspx - 但無法將字符串語法應用於我的案例。

有人可以建議我如何完成這個分組嗎?先謝謝你。

<xsl:choose> 
    <xsl:when test="not ($dvt_groupfield)"> 
    <xsl:value-of select="ddwrt:NameChanged(string(@ProposalID), 0)" /> 
    </xsl:when> 
    <xsl:otherwise></xsl:otherwise> 
</xsl:choose> 

回答

2

基礎上的博客文章中,我推測的是,以下將在這種情況下工作:

<xsl:choose> 
    <xsl:when test="not ($dvt_groupfield)"> 
    <xsl:value-of select="ddwrt:NameChanged(string(substring(@ProposalID, 1, 4)), 0)" /> 
    </xsl:when> 
    <xsl:otherwise></xsl:otherwise> 
</xsl:choose> 

使用1和4邊界的字符串。

也是類似的標題,還指示在博客文章:

<xsl:when test="not (@ProposalID) and (@ProposalID) != false()"> 
    <xsl:value-of select="' '" /> 
</xsl:when> 
<xsl:otherwise> 
    <xsl:value-of select="substring(@ProposalID,1,4)" /> 

你能不能給一個試試?

+0

是的。這正是我試圖完成的任務,但無法解決語法問題。非常感謝你! –