SharePoint XSLT $ AllRows неожиданно ведет себя на живом сайте SharePoint - PullRequest
0 голосов
/ 07 декабря 2010

Я новичок в XSLT, и я также новичок в Sharepoint.

Я изменил свою веб-часть XLV, чтобы она имела следующий XML:

<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:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]"/>
  <xsl:param name="dvt_apos">'</xsl:param>
  <xsl:template match="View[@BaseViewID='0']" mode="full" ddwrt:ghost="always">        
   <div class="box whatsnew">
    <div class="boxcontent">
     <h2><xsl:value-of select="List/@title" /></h2>
     <p><xsl:value-of select="List/@description" /></p>

     <ul>
      <xsl:for-each select="$AllRows">      
       <li>
        <em><xsl:value-of select="@Date" /></em><br />
        <a href="{@Link}"><xsl:value-of select="@Text" /></a>
       </li>
      </xsl:for-each>
     </ul>
    </div>
   </div>
  </xsl:template>
 </xsl:stylesheet>
</xsl>

При просмотре веб-части в режиме «Дизайн» в конструкторе SharePoint элементы списка заполняются, как я и ожидал.

Но когда я публикую свои изменения на сайте SharePoint, три значения возвращаются пустыми. Эти значения являются значениями внутри оператора for-each: @Date, @Text и @ Link.

Я искал ответы. Но безрезультатно. Есть идеи, почему этот код не работает на моем живом сайте Sharepoint? Любая идея будет принята с благодарностью!

Ответы [ 2 ]

3 голосов
/ 07 декабря 2010

Это проблема с объявлением переменной AllRows. кажется, он получает либо пустые строки.

Пожалуйста, проверьте условную часть оператора фильтра, которая выглядит как пробламитическая область. Я бы рекомендовал сначала удалить условную часть и проверить, полностью ли получены данные. и затем измените свой оператор фильтра

0 голосов
/ 30 июня 2013

В моем случае это была ошибка SPD, когда изменения в коде не применялись к странице, а отображались в SPD. Следующие действия решили эту проблему: просто введите что-то непосредственно в столбец представления списка в SharePoint Designer (в режиме разработки) и сохраните изменения. После этого удалите строку, которую вы ввели первыми, и снова сохраните страницу. Тогда страница-призрак должна работать и в браузере. Ссылка на тему, где я нашел это решение

...