Изменение отображения элементов в списке с помощью XSL

Комментарии можно оставлять "здесь"

Очень полезным и более эффективным способом изменения вешнего вида отображения списков является использование XSL преобразования. Преимущество в том, что XLS преобразование можно подключить к любой веб части отображения списка стандартными средствами администрирования, а само преобразование можно написать в текстовом редакторе.
&nbspПисать теорию по xls(t) преобразованию я не буду. Приведу некоторые примеры и попробую дать к ним комментарии.

<?xml version="1.0" encoding="utf-8"?>
<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">

 <xsl:import href="/_layouts/xsl/main.xsl"/>
 <xsl:output method="html" indent="no"/>
 <xsl:template match="FieldRef[@FieldType = 'FieldType']" mode="Text_body">
  <xsl:param name="thisNode" select="." />
  <span style="background-color:white;font-weight:bold">
   <xsl:value-of select="substring-after($thisNode/@*[name()=current()/@Name], '~')" />
  </span >
 </xsl:template>
</xsl:stylesheet>

  Данное преобразование над полями типа обозначенное у меня как FieldType (оно может быть, например, Text, URL или любое другое собственное) осуществляет изменение значения поля: выводит текст после символа '~'. Т.е. если значение поля есть 'id~value', то в списке будет отображаться только 'value'.

Как подключить xls преобразование к списку? Есть как минимум 2 способа:
1. Сохранить его в доступном месте для пользователей. И в настройках веб части указать на него ссылку.


2. При разработке схемы списка в представлении непосредственно указать ссылку на него. Соответственно сохранив преобразование в папке Sharepoint - XSL

...
<Views>
 <View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="Фильтрация" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" ImageUrl="/_layouts/images/generic.png" Url="FilteringView.aspx" Path="FilteringView.aspx">
  <Toolbar Type="Standard" />
  <XslLink Default="TRUE"<custom.xsl</XslLink>
  <RowLimit Paged="TRUE"<30</RowLimit>
....

Далее приведу пример xsl преобразования, которое полностью меняет визуальную структур представления и использует собственные контролы


<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:MyContyrol="prob.ControlTemplates.prob" 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">
<xsl:import href="/_layouts/xsl/main.xsl"/>
<xsl:output method="html" indent="no"/>
<xsl:decimal-format NaN=""/>
<xsl:param name="ViewCounter" select="'1'"/>
<xsl:param name="FORM_EDIT"/>
<xsl:param name="FORM_DISPLAY"/>
<xsl:param name="ENCODED_FORM_NEW"/>
<xsl:param name="RowTotalCount" select="0"/>
<xsl:param name="select_deselect_all"/>
<xsl:param name="XmlDefinition" select="."/>
<xsl:param name="HttpPath"/>
<xsl:param name="NoCTX"/>
<xsl:param name="RenderCTXOnly"/>
<xsl:param name="IsGhosted" select="'0'"/>
<xsl:param name="MasterVersion" select="3"/>
<xsl:param name="ShowAlways"/>
<xsl:param name="FilterLink"/>
<xsl:param name="IsDocLib"/>
<xsl:param name="dvt_RowCount" select="0" />
<xsl:param name="List" />
<xsl:param name="View" />
<xsl:param name="InlineEdit"/>
<xsl:param name="TabularView"/>
<xsl:param name="GroupingRender"/>
<xsl:param name="dvt_form_key"/>
  <xsl:param name="PagePath"/>
  <xsl:param name="ShowWebPart"/>
  <xsl:param name="FieldSortParam"/>
  <xsl:param name="SortQueryString"/>
  <xsl:param name="dvt_prevpagedata" />
  <xsl:param name="dvt_nextpagedata" />
  <xsl:param name="EntityName" />
<xsl:template match="/">
<xsl:variable name="Fields" select="$XmlDefinition/ViewFields/FieldRef[not(@Explicit='TRUE')]"/>
<xsl:variable name="Url" select="$ENCODED_FORM_NEW"/>

    <xsl:variable name="LastRowValue">
      <xsl:choose>
        <xsl:when test="$EntityName = '' or $LastRow &lt; $RowTotalCount">
          <xsl:value-of select="$LastRow"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$RowTotalCount"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:variable name="RealRowLimit">
      <xsl:value-of select = "$XmlDefinition/RowLimit"/>
    </xsl:variable>

    <xsl:if test="ddwrt:IfHasRights(2048)">
      <div style="position:absolute;top:60px;left:10px;">
        <a  href="{$Url}" onclick="javascript:NewItem2(event, &quot;{$Url}&quot;);javascript:return false;" target="_self">Add new</a>
        <br/>
        <xsl:if test="$FirstRow!=1">  
          <a>
            <xsl:attribute name="onclick">
              javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$ShowWebPart"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;
            </xsl:attribute>
            <xsl:attribute name="href">javascript:</xsl:attribute>
            first
          </a>
        
            <a>
            <xsl:attribute name="onclick">
                javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$dvt_prevpagedata"/><xsl:value-of select="$ShowWebPart"/>\u0026PageFirstRow=<xsl:value-of select="$FirstRow - $RealRowLimit"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;
            </xsl:attribute>
            <xsl:attribute name="href">javascript:</xsl:attribute>
              <img src="/_layouts/{$LCID}/images/prev.gif" border="0" alt="{$Rows/@idRewind}" />prev
          </a>
        </xsl:if>
        <xsl:value-of select="$FirstRow" /> - <xsl:value-of select="$LastRowValue" />
        <xsl:if test="string-length($dvt_nextpagedata)!=0">
          <a>
            <xsl:attribute name="onclick">
                javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$dvt_nextpagedata"/><xsl:value-of select="$ShowWebPart"/>\u0026PageFirstRow=<xsl:value-of select="$LastRowValue + 1"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;
            </xsl:attribute>
            <xsl:attribute name="href">javascript:</xsl:attribute>
            next<img src="/_layouts/{$LCID}/images/next.gif" border="0" alt="{$Rows/@tb_nextpage}" />
          </a>
        </xsl:if>
      </div>
    </xsl:if>
   
<table width="75%" cellspacing="0" cellpadding="0" border="1"  style="visibility:hidden">
<xsl:if test="not($NoCTX)">
<xsl:call-template name="CTXGeneration"/>
</xsl:if>
<tr>
<td>
<iframe src="javascript:false;" id="FilterIframe{$ViewCounter}" name="FilterIframe{$ViewCounter}" style="display:none" height="0" width="0" FilterLink="{$FilterLink}"></iframe>
<table xmlns:o="urn:schemas-microsoft-com:office:office"  style="visibility:hidden">
<xsl:attribute name="onmouseover">EnsureSelectionHandler(event,this,<xsl:value-of select ="$ViewCounter"/>)</xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="concat($List, '-', $View)"/></xsl:attribute>
<xsl:for-each select="$AllRows" > <!-- can use <xsl:for-each select="dsQueryResponse/Rows/Row" > -->
<xsl:sort select="@Title" order="descending"/>
<xsl:call-template name="row">
<xsl:with-param name="ID" select="@ID"/>
<xsl:with-param name="Fields" select="$Fields"/>
                <xsl:with-param name="Num" select="position()"/>
</xsl:call-template>
            </xsl:for-each>
</table>
</td>
</tr>
</table>  
</xsl:template>
  
<xsl:template name="row">
<xsl:param name="ID"/>
<xsl:param name="Fields" select="."/>
    <xsl:param name="Num" select="0"/>
<xsl:variable name="thisNode" select="."/>
    <xsl:variable name="ColCount" select="3"/>
    
<tr style="position:absolute;top:{100+ 150*floor((number($Num)-1) div number($ColCount))}px;left:{200*((number($Num)-1) mod number($ColCount))}px;visibility:visible;">
<!-- Reference to ribbon -->
<xsl:attribute name="iid">
  <xsl:value-of select="$ViewCounter"/>,<xsl:value-of select="$ID"/>,<xsl:value-of select="0"/>
</xsl:attribute>
<td><input type="checkbox" />    <xsl:value-of select="floor((number($Num)-1) div number($ColCount))"/>   </td>
<td>
<div onmouseover="OnItem(this)" CTXName="ctx{$ViewCounter}" id="{$thisNode/@ID}" >
<xsl:value-of select="$thisNode/@ID"  /> <xsl:value-of select="$thisNode/@Title"  /> 
<MyContyrol:UC Input="44444" prob="fffff" runat="server" />
<asp:button runat="server" text="eee" />
<xsl:value-of select="$Num"  />
</div>
</td>
<td>
<svg height="30" width="30" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="10"  fill ="red"/>
</svg>
</td>​
</tr>
</xsl:template>  
</xsl:stylesheet>

Настройка web.config
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add tagPrefix="MyContyrol" src="/_controltemplates/prob/UControl.ascx" tagName="UC"/>
      </controls>

Control Definition – ASCX​

<div>(<%= Input %>) - user control </div>
<div>(<%= prob%>) - user control </div>
<table style="visibility:visible"></table>
<div style="text-align:left"></div>



Control Definition – Code Behind 


namespace prob.ControlTemplates.prob
{
    public partial class UControl : UserControl
    {
        public string Input;
        public string prob;

        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
    }
}



Можно менять отображение частично, относительно по умолчанию. Пример изменения цвета и отображение подстроки у значения:

<xsl:template match="FieldRef[@FieldType = 'MyLookUpField']" mode="Text_body">
    <xsl:param name="thisNode" select="." />
    <span style="background-color:white;font-weight:bold">
      <xsl:value-of select="substring-after($thisNode/@*[name()=current()/@Name], '~')" />
    </span>
  </xsl:template>




Следующий пример показывает способ отобразить содержимое списка с помощью своей веб-части, используя xsl преобразование. 

Пример избыточный и выдернут из контекста

Создадим через SharePoint Designer новую страницу со следующим содержимом, где

8830eb56-3911-4934-b958-fc08baf6ea87 - GUID списка, в который является источником данных


SelectCommand - CAML запрос данных 


rnID - GET параметр


<%@ Control Language="C#" AutoEventWireup="true" inherits="Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>

<head>

<meta name="ProgId" content="SharePoint.WebPartPage.Document">
<meta name="WebPartPageExpansion" content="full">
</head>

<WebPartPages:DataFormWebPart runat="server" EnableOriginalValue="False" ViewFlag="8" ViewContentTypeId="" ListUrl="" ListDisplayName="" ListName="{8830EB56-3911-4934-B958-FC08BAF6EA87}" ListId="8830eb56-3911-4934-b958-fc08baf6ea87" PageSize="10" UseSQLDataSourcePaging="True" DataSourceID="" ShowWithSampleData="False" AsyncRefresh="False" ManualRefresh="False" AutoRefresh="False" AutoRefreshInterval="60" NoDefaultStyle="TRUE" InitialAsyncDataFetch="False" Title="Рубрики новостей" FrameType="None" SuppressWebPartChrome="False" Description="" IsIncluded="True" PartOrder="1" FrameState="Normal" AllowRemove="True" AllowZoneChange="True" AllowMinimize="True" AllowConnect="True" AllowEdit="True" AllowHide="True" IsVisible="True" DetailLink="" HelpLink="" HelpMode="Modeless" Dir="Default" PartImageSmall="" MissingAssembly="Невозможно импортировать эту веб-часть." ImportErrorMessage="Невозможно импортировать эту веб-часть." PartImageLarge="" IsIncludedFilter="" ExportControlledProperties="True" ConnectionID="00000000-0000-0000-0000-000000000000" ID="g_4b4a4d91_1086_49c4_96bf_12c8d21b2170" ChromeType="None" ExportMode="All" __MarkupType="vsattributemarkup" __WebPartId="{4B4A4D91-1086-49C4-96BF-12C8D21B2170}" __AllowXSLTEditing="true" WebPart="true" Height="" Width="">

<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" 
SelectCommand="&lt;View&gt;&lt;Query&gt;&lt;OrderBy&gt;&lt;FieldRef Name=&quot;Num&quot; Ascending=&quot;TRUE&quot;/&gt;&lt;/OrderBy&gt;&lt;/Query&gt;&lt;/View&gt;" UseInternalName="True" UseServerDataFormat="True" ID="dataformwebpart11">
<SelectParameters>
<WebPartPages:DataFormParameter ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{8830EB56-3911-4934-B958-FC08BAF6EA87}" Name="ListID"></WebPartPages:DataFormParameter>
<asp:Parameter DefaultValue="0" Name="StartRowIndex"></asp:Parameter>
<asp:Parameter DefaultValue="0" Name="nextpagedata"></asp:Parameter>
<asp:Parameter DefaultValue="10" Name="MaximumRows"></asp:Parameter>
</SelectParameters>
<UpdateParameters>
<WebPartPages:DataFormParameter ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{8830EB56-3911-4934-B958-FC08BAF6EA87}" Name="ListID"></WebPartPages:DataFormParameter>
</UpdateParameters>
<InsertParameters>
<WebPartPages:DataFormParameter ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{8830EB56-3911-4934-B958-FC08BAF6EA87}" Name="ListID"></WebPartPages:DataFormParameter>
</InsertParameters>
<DeleteParameters>
<WebPartPages:DataFormParameter ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{8830EB56-3911-4934-B958-FC08BAF6EA87}" Name="ListID"></WebPartPages:DataFormParameter>
</DeleteParameters>
</SharePoint:SPDataSource>
</DataSources>
<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">
<xsl:output method="html" indent="no"/>
<xsl:decimal-format NaN=""/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:param name="ManualRefresh"></xsl:param>
<xsl:param name="ListID">{8830EB56-3911-4934-B958-FC08BAF6EA87}</xsl:param>
<xsl:param name="rnID">0</xsl:param>
<xsl:param name="URL" />
<xsl:variable name="dvt_1_automode">0</xsl:variable>

<xsl:template match="/" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls">
<h2>
<span class="ms-rteThemeForeColor-2-0" > 
<a href="/Lists/News/AllItems.aspx" style="font-size: 25pt;color:black;">Новости</a>
</span> 
</h2>

<xsl:variable name="dvt_StyleName">HorzTitl</xsl:variable>

<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
<xsl:variable name="dvt_RowCount" select="count($Rows)" />
<xsl:variable name="dvt_IsEmpty" select="$dvt_RowCount = 0" />
<xsl:choose>
<xsl:when test="$dvt_IsEmpty">
Нет данных
</xsl:when>
<xsl:otherwise>
<div>
<ul>
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows" />
</xsl:call-template>
</ul>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template name="dvt_1.body">
<xsl:param name="Rows" />

<li>

<a href="?rnID=0">
<span> 
<xsl:if test="$rnID = 0">
<xsl:attribute name="class">selected</xsl:attribute>
</xsl:if>
Все
</span>
</a>
</li>
<xsl:for-each select="$Rows">
<xsl:choose >
<xsl:when test="$URL = '/Lists/News/AllItems.aspx'">
<xsl:call-template name="dvt_1.rowview" />
</xsl:when>
<xsl:otherwise>
<xsl:if test="@_x041d__x0430__x0020__x0433__x04='Да'">
<xsl:call-template name="dvt_1.rowview" />
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>

<xsl:template name="dvt_1.rowview">
<li>
<a href="?rnID={@ID}" >
<span>
<xsl:if test="@ID = $rnID">
<xsl:attribute name="class">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="@Title" />
</span>
</a>
</li>
</xsl:template>
</xsl:stylesheet></Xsl>
<DataFields>
@Title,Название;@url,url;@ID,ИД;@ContentType,Тип контента;
@Modified,Изменено;@Created,Создано;@Author,Кем создано;@Editor,Кем изменено;@_UIVersionString,Версия;
@Attachments,Вложения;@File_x0020_Type,Тип файла;@FileLeafRef,Имя (для использования в формах);@FileDirRef,Путь;
@FSObjType,Тип элемента;@_HasCopyDestinations,Имеет копии;@_CopySource,Источник копии;
@ContentTypeId,Идентификатор типа контента;@_ModerationStatus,Состояние утверждения;@_UIVersion,Версия ИП;
@Created_x0020_Date,Создано;@FileRef,Путь URL-адреса;@ItemChildCount,Число дочерних элементов;@num,Порядок следования;
@FolderChildCount,Число дочерних папок;@AppAuthor,Кем создано (приложение);@AppEditor,Кем изменено (приложение);
</DataFields>
<ParameterBindings>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
<ParameterBinding Name="ManualRefresh" Location="WPProperty[ManualRefresh]"/>
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
<ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
<ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue=""/>
<ParameterBinding Name="ListID" Location="None" DefaultValue="{8830EB56-3911-4934-B958-FC08BAF6EA87}"/>
<ParameterBinding Name="rnID" Location="QueryString(rnID)" DefaultValue="0"/>
<ParameterBinding Name="URL" Location="ServerVariable(URL)" DefaultValue=""/>
</ParameterBindings>
</WebPartPages:DataFormWebPart>



Источник данных может быть и xml файл

<ParameterBindings>
<ParameterBinding Name="FileName" Location="QueryString(xmlSource)" DefaultValue="forecastEmpty.xml"/>
<ParameterBinding Name="FilePath" Location="None" DefaultValue="http://server/weather/"/>
</ParameterBindings>

<DataSources>
<SharePoint:SPXmlDataSource runat="server" DataFile="" AutoSave="True" XPath="" ID="ServiceFiles_x002f_helloWorld_x002e_xml4">
<DataFileParameters>
<WebPartPages:DataFormParameter ParameterKey="FileName" Name="FileName" PropertyName="ParameterValues" DefaultValue="forecast.xml" ></WebPartPages:DataFormParameter>
<WebPartPages:DataFormParameter ParameterKey="FilePath" Name="FilePath" PropertyName="ParameterValues" DefaultValue="http://server/weather/" ></WebPartPages:DataFormParameter>
</DataFileParameters>
</SharePoint:SPXmlDataSource>
</DataSources>


GET параметр можно и использовать и в CAML запросе

<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" 
SelectCommand="&lt;View&gt;&lt;Query&gt;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;ID&quot;/&gt;&lt;Value Type=&quot;Integer&quot;&gt;{nID}&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&lt;/Query&gt;&lt;/View&gt;" UseInternalName="True" UseServerDataFormat="True" ID="dataformwebpart8">
<SelectParameters>
<WebPartPages:DataFormParameter ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{21FE7955-36E1-45C8-BD0F-703DB1A3F34A}" Name="ListID"></WebPartPages:DataFormParameter>
<asp:Parameter DefaultValue="0" Name="StartRowIndex"></asp:Parameter>
<asp:Parameter DefaultValue="0" Name="nextpagedata"></asp:Parameter>
<asp:Parameter DefaultValue="10" Name="MaximumRows"></asp:Parameter>
<WebPartPages:DataFormParameter ParameterKey="nID" PropertyName="ParameterValues" DefaultValue="*" Name="nID"></WebPartPages:DataFormParameter>

</SelectParameters>
....

 Комментарии можно оставлять "здесь"

Комментариев нет:

Яндекс.Метрика