3

I've run into a bug with a List web part that has me stumped.

Bug description: Using the web part and XSL specified below, expanding groups may result in items from the wrong group being shown. Specifically, a certain sequence of events seems to trigger the bug:

1) Make sure all groups are collapsed by default
2) Expand one of the groups
3) Collapse that same group
4) Expand one of the other groups and it will show the items from the group that was just collapsed

Application description: This web part and XSL are intended to display Service Request (Help Desk request) items, grouped by Status. When an item's status is not "Closed" and is between 2 and 4 weeks old, it's colored yellow. When an item is not "Closed" and is over 4 weeks old, it's colored red.

<WebPartPages:XsltListViewWebPart runat="server" AllowHide="True" PartImageSmall="" PartOrder="2" Title="Service Requests" ManualRefresh="False" ViewGuid="{4409BF05-675F-4DCA-8703-2F3C395B9B27}" HelpMode="Modeless" AllowEdit="True" SuppressWebPartChrome="False" ShowWithSampleData="False" ListId="5961e440-057a-4d87-937c-7acf17273d27" GhostedXslLink="main.xsl" PageSize="-1" UseSQLDataSourcePaging="True" EnableOriginalValue="False" ConnectionID="00000000-0000-0000-0000-000000000000" ExportControlledProperties="False" AutoRefreshInterval="60" ViewContentTypeId="0x" Description="" AllowZoneChange="True" CatalogIconImageUrl="/_layouts/images/itgen.png" ID="g_4409bf05_675f_4dca_8703_2f3c395b9b27" MissingAssembly="Cannot import this Web Part." FrameState="Normal" ChromeType="None" AllowMinimize="True" Dir="Default" ViewFlag="8388621" AllowConnect="True" DetailLink="/helpdesk/Lists/Service Requests" WebId="00000000-0000-0000-0000-000000000000" PartImageLarge="/_layouts/images/itgen.png" TitleUrl="/helpdesk/Lists/Service Requests" ListName="{5961E440-057A-4D87-937C-7ACF17273D27}" ExportMode="NonSensitiveData" FrameType="None" DataSourceID="" IsIncludedFilter="" AllowRemove="True" HelpLink="" IsIncluded="True" IsVisible="True" AsyncRefresh="False" AutoRefresh="False" InitialAsyncDataFetch="False" __MarkupType="vsattributemarkup" __WebPartId="{4409BF05-675F-4DCA-8703-2F3C395B9B27}" __AllowXSLTEditing="true" __designer:CustomXsl="fldtypes_Ratings.xsl" WebPart="true" Height="" Width="">
  <DataFields>
  </DataFields>
  <Xsl>
    <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal" xmlns:o="urn:schemas-microsoft-com:office:office">
      <xsl:include href="/_layouts/xsl/main.xsl"/>
      <xsl:include href="/_layouts/xsl/internal.xsl"/>
      <xsl:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]"/>
      <xsl:param name="dvt_apos">&apos;</xsl:param>
      <xsl:param name="Today">CurrentDate</xsl:param>
      <xsl:template mode="Item" match="Row" ddwrt:ghost="" xmlns:ddwrt2="urn:frontpage:internal">
        <xsl:param name="Fields" select="."/>
        <xsl:param name="Collapse" select="."/>
        <xsl:param name="Position" select="1" />
        <xsl:param name="Last" select="1" />
        <xsl:variable name="thisNode" select="."/>
        <xsl:variable name="ID">
          <xsl:call-template name="ResolveId">
            <xsl:with-param name="thisNode" select ="."/>
          </xsl:call-template>
        </xsl:variable>
        <xsl:variable name="FSObjType">
          <xsl:choose>
            <xsl:when test="$EntityName != ''">0</xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="./@FSObjType"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:variable name="altClass">
          <xsl:choose>
            <xsl:when test="$Position mod 2 = 0">ms-alternating</xsl:when>
            <xsl:otherwise></xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:variable name="hoverClass">
          <xsl:choose>
            <xsl:when test="($TabularView='1' and $MasterVersion=4) or $InlineEdit">ms-itmhover</xsl:when>
            <xsl:otherwise></xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:variable name="EditMode" select="$dvt_form_key = @ID or $dvt_form_key = @BdcIdentity"/>
        <xsl:variable name="CreatedTicks" select="ddwrt:DateTimeTick(ddwrt:GenDisplayName(string(@Created)))" />
        <xsl:variable name="TodayTicks" select="ddwrt:DateTimeTick(ddwrt:GenDisplayName(string(ddwrt:Today())))" />

        <xsl:variable name="yellowClass">
          <xsl:choose>
            <xsl:when test="@Request_x0020_Status != 'Closed' and $CreatedTicks &lt;= ($TodayTicks - (7*24*3600*1000*10000)) and $CreatedTicks &gt;= ($TodayTicks - (15*24*3600*1000*10000))">code-yellow</xsl:when>
            <xsl:otherwise></xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:variable name="redClass">
          <xsl:choose>
            <xsl:when test="@Request_x0020_Status != 'Closed' and $CreatedTicks &lt;= ($TodayTicks - (15*24*3600*1000*10000))">code-red</xsl:when>
            <xsl:otherwise></xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <tr>
          <xsl:attribute name="style">
            <xsl:if test="$Collapse">display:none;</xsl:if>
          </xsl:attribute>

          <xsl:attribute name="class">
            <xsl:value-of select="normalize-space(concat($altClass, ' ', $yellowClass, ' ', $redClass, ' ', $hoverClass))"/>
          </xsl:attribute>

          <xsl:if test="($TabularView='1' and $MasterVersion=4) or $InlineEdit">
            <xsl:attribute name="iid">
              <xsl:value-of select="$ViewCounter"/>,<xsl:value-of select="$ID"/>,<xsl:value-of select="$FSObjType"/>
            </xsl:attribute>
          </xsl:if>
          <xsl:if test="$EditMode">
            <xsl:attribute name="automode">
              <xsl:value-of select ="$ViewCounter"/>
            </xsl:attribute>
          </xsl:if>
          <xsl:if test="$TabularView='1' and $MasterVersion=4">
            <td class="ms-vb-itmcbx ms-vb-firstCell">
              <input type="checkbox" class="s4-itm-cbx"/>
            </td>
          </xsl:if>
          <xsl:if test="$InlineEdit">
            <xsl:call-template name="AutoModeHeader"/>
          </xsl:if>
          <xsl:for-each select="$Fields">
            <xsl:choose>
              <xsl:when test="$EditMode and not(@ReadOnly='TRUE') and not(@FieldType='Recurrence') and not(@FieldType='CrossProjectLink')">
                <xsl:call-template name="AutoModeForm">
                  <xsl:with-param name="thisNode" select="$thisNode" />
                  <xsl:with-param name="Position" select="$Position"/>
                  <xsl:with-param name="Fields" select="$Fields"/>
                </xsl:call-template>
              </xsl:when>
              <xsl:otherwise>
                <xsl:apply-templates select="." mode="printTableCellEcbAllowed">
                  <xsl:with-param name="thisNode" select="$thisNode"/>
                </xsl:apply-templates>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:for-each>
        </tr>
      </xsl:template>
    </xsl:stylesheet>
  </Xsl>
  <ParameterBindings>
    <ParameterBinding Name="dvt_sortdir" Location="Postback;Connection" />
    <ParameterBinding Name="dvt_sortfield" Location="Postback;Connection" />
    <ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue="" />
    <ParameterBinding Name="dvt_firstrow" Location="Postback;Connection" />
    <ParameterBinding Name="OpenMenuKeyAccessible" Location="Resource(wss,OpenMenuKeyAccessible)" />
    <ParameterBinding Name="open_menu" Location="Resource(wss,open_menu)" />
    <ParameterBinding Name="select_deselect_all" Location="Resource(wss,select_deselect_all)" />
    <ParameterBinding Name="idPresEnabled" Location="Resource(wss,idPresEnabled)" />
    <ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
    <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
    <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
  </ParameterBindings>
  <XmlDefinition>
    <View Name="{4409BF05-675F-4DCA-8703-2F3C395B9B27}" MobileView="TRUE" Type="HTML" Hidden="TRUE" DisplayName="" Url="/helpdesk/Lists/Service Requests/ColorCoded.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png">
      <Query>
        <GroupBy Collapse="TRUE" GroupLimit="30">
          <FieldRef Name="Request_x0020_Status"/>
        </GroupBy>
        <OrderBy>
          <FieldRef Name="Created" Ascending="FALSE"/>
        </OrderBy>
      </Query>
      <ViewFields>
        <FieldRef Name="Ticket_x0020_Number"/>
        <FieldRef Name="Title"/>
        <FieldRef Name="Created"/>
        <FieldRef Name="Client_x0020_Name"/>
        <FieldRef Name="Network"/>
        <FieldRef Name="Request_x0020_Status"/>
        <FieldRef Name="User_x0020_Priority"/>
        <FieldRef Name="Help_x0020_Desk_x0020_Priority"/>
        <FieldRef Name="Service_x0020_Representative"/>
      </ViewFields>
      <RowLimit Paged="TRUE">30</RowLimit>
      <Aggregations Value="Off"/>
      <Toolbar Type="None"/>
    </View>
  </XmlDefinition>
</WebPartPages:XsltListViewWebPart>

Any help would be much appreciated!

2
  • I'm very curious to know if you managed to sort this out as we have the exact same issue?
    – user16973
    Commented May 14, 2013 at 4:35
  • Unfortunately no... If I remove the XSLT reference, it no longer happens, so there must be something about the XSL markup causing the problem.
    – Dom Rocco
    Commented May 22, 2013 at 13:11

1 Answer 1

1

This is one of the known bug in SharePoint, can you please let me know when you had last patch upgrade for your SharePoint server.

The 2012 Dec patch most probably would fix your issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.