Комментарии можно оставлять "здесь"
Очень полезным и более эффективным способом изменения вешнего вида отображения списков является использование XSL преобразования. Преимущество в том, что XLS преобразование можно подключить к любой веб части отображения списка стандартными средствами администрирования, а само преобразование можно написать в текстовом редакторе.
 Писать теорию по xls(t) преобразованию я не буду. Приведу некоторые примеры и попробую дать к ним комментарии.
Данное преобразование над полями типа обозначенное у меня как FieldType (оно может быть, например, Text, URL или любое другое собственное) осуществляет изменение значения поля: выводит текст после символа '~'. Т.е. если значение поля есть 'id~value', то в списке будет отображаться только 'value'.
Как подключить xls преобразование к списку? Есть как минимум 2 способа:
1. Сохранить его в доступном месте для пользователей. И в настройках веб части указать на него ссылку.
2. При разработке схемы списка в представлении непосредственно указать ссылку на него. Соответственно сохранив преобразование в папке Sharepoint - XSL
...
Пример избыточный и выдернут из контекста
<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List"
SelectCommand="<View><Query><Where><Eq><FieldRef Name="ID"/><Value Type="Integer">{nID}</Value></Eq></Where></Query></View>" 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>
....
Очень полезным и более эффективным способом изменения вешнего вида отображения списков является использование XSL преобразования. Преимущество в том, что XLS преобразование можно подключить к любой веб части отображения списка стандартными средствами администрирования, а само преобразование можно написать в текстовом редакторе.
 Писать теорию по 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 < $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, "{$Url}");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 преобразование.
Пример избыточный и выдернут из контекста
Следующий пример показывает способ отобразить содержимое списка с помощью своей веб-части, используя 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="<View><Query><OrderBy><FieldRef Name="Num" Ascending="TRUE"/></OrderBy></Query></View>" 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="<View><Query><Where><Eq><FieldRef Name="ID"/><Value Type="Integer">{nID}</Value></Eq></Where></Query></View>" 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>
....
Комментарии можно оставлять "здесь"
Комментариев нет:
Отправить комментарий