MOSS 의: DataForm Web Part 분석

95660 단어 form
SharePoint Designer 에 DataForm 을 삽입 하면 코드 부분 이 네 부분 으로 구성 되 어 있 음 을 발견 할 수 있 습 니 다.
1) DataSources: 데이터 소스, 단일 데이터 소스, 다 중 데이터 소스 링크, SharePoint 도 각종 데이터 소스 컨트롤 (XML, 웹 서비스, 데이터 베이스 등) 을 제공 합 니 다.SharePoint 의 단일 데이터 목록 작업 을 할 때 SPDataSource 컨트롤 을 사용 합 니 다. 이 글 은 주로 이 컨트롤 을 소개 합 니 다. 또한 다 중 데이터 소스 링크 와 응용 장면 을 간략하게 설명 할 것 입 니 다.
2) ParameterBindings: Web Part 의 모든 인자 가 여기에 포함 되 어 있 습 니 다.
3) DataFields: 웹 파 트 에 표시 할 수 있 는 모든 데이터 필드
4) XSL: XSLT, 데이터 원본 의 데 이 터 를 원 하 는 디 스 플레이 스타일 로 변환
DataForm 의 작업 과정 은 일반적으로 다음 과 같 습 니 다.
1) DataForm Web Part 는 매개 변 수 를 먼저 처리 합 니 다. 데이터 원본 에 매개 변 수 를 포함 하여 데 이 터 를 선별 할 수 있 습 니 다. XSLT 에 도 일부 매개 변 수 를 할당 해 야 할 수 있 습 니 다. 웹 위 젯 은 ParameterBindings 블록 에 있 는 모든 매개 변 수 를 데이터 원본 과 XSLT 에 ParameterKey 와 같은 매개 변수 로 할당 합 니 다.
2) 그리고 DataForm Web Part 는 데이터 원본 에 대응 하 는 데 이 터 를 되 돌려 주 는 XML 형식 데 이 터 를 추출 합 니 다.
< update > 우리 가 SharePoint Designer 에서 본 선별 창 은 일반적으로 데이터 원본 을 선별 하 는 데 사 용 됩 니 다. SPDatasource 의 Selectcommand 속성 < / update > 을 수정 합 니 다.
3) 마지막 으로 XSLT 를 이용 하여 데이터 원본 을 클 라 이언 트 에 게 되 돌려 줍 니 다.

우리 가 SharePoint Designer 에서 본 선별 창의 고급 XPath 선별 은 XSLT 차원 의 선별 입 니 다.
즉, 데이터 원본 선별 이 먼저 이 루어 진 다음 에 XSLT 가 데 이 터 를 하나씩 선별 하고 XSLT 의 선별 은 데이터 양 이 많 을 때 성능 에 영향 을 줄 수 있다 는 것 이다.따라서 특별한 수요 가 없 으 면 데이터 원본 을 선별 하고 XPath 를 사용 하지 않 는 것 이 좋 습 니 다.

------
다음은 DataSources, ParameterBindings 와 XSL 과 관련 된 정보 와 유용 한 링크 를 소개 합 니 다.
1)DataSources
SPDataSource 라 는 웹 컨트롤 은 여러 가지 데이터 원본 모드 가 있 습 니 다. ListItem (단일 목록 항목), List (특정한 목록), CrossList (크로스 목록), ListofLists (목록 집합, 목록 정보 표시), Webs (사이트 정보)
SPDataSource 컨트롤 에 대한 정보, SharePoint Designer Team 은 좋 은 블 로그 가 있 습 니 다: SPDataSource and Rollups with the Data View
ListItem 과 List 모드 에서 DataForm Web Part 의 SPDataSource 는 DataFormParameter 를 포함해 야 합 니 다. DataFormParameter 는 독립 된 매개 변수 클래스 입 니 다. DataForm Web Part 는 이 매개 변수 로 데이터 원본 목록 을 찾 는 동시에 DataFormParameter 도 특정한 ParameterKey: ListID, ListItemId, ListName, WebUrl 등 만 식별 합 니 다.
ListItem 모드 라면 (ListID or ListName) and ListItemId 인자 가 있어 야 합 니 다.
List 모드 라면 ListID 나 ListName 인자 가 있어 야 합 니 다.
기술: 맞 춤 형 페이지 를 이전 하려 면 ListName 인 자 를 사용 하여 목록 을 찾 아야 합 니 다. 이 유 는 간단 합 니 다. 목록 이름 은 이전 후 변 하지 않 지만 ListID 는 변 합 니 다.
CrossList, ListofLists, Webs 모드 에서 SPDataSource 의 SelectCommand 는 SPSiteDataQuery 의 조회 규칙 과 비슷 합 니 다. 예 를 들 어 < Lists > < / Lists > 로 현재 사이트 의 모든 목록 을 선택 할 수 있 습 니 다. 다음은 현재 사이트 목록 을 보 여 주 는 예 입 니 다.
<WebPartPages:DataFormWebPart runat="server" AllowConnect="True" PartImageSmall="" MissingAssembly="Can't exported"
IsIncludedFilter="" ExportMode="All" ID="g_eea4c5ed_0ae5_498b_9840_32b8409212b8" AllowRemove="True" FrameState="Normal"
ConnectionID="00000000-0000-0000-0000-000000000000" DetailLink="" ExportControlledProperties="True" IsIncluded="True"
sVisible="True" AllowEdit="True" Dir="Default" SuppressWebPartChrome="False" ViewContentTypeId="" PageSize="-1" FrameType="Default"
DataSourceID="" UseSQLDataSourcePaging="True" AllowHide="True" AllowMinimize="True" ShowWithSampleData="False" HelpMode="Modeless"
ViewFlag="0" Title="test1" HelpLink="" Description="" PartOrder="2" AllowZoneChange="True" PartImageLarge="" NoDefaultStyle="TRUE"
__MarkupType="vsattributemarkup" __WebPartId="{EEA4C5ED-0AE5-498B-9840-32B8409212B8}" __AllowXSLTEditing="true" WebPart="true" Height="" Width="">
<DataSources> <SharePoint:SPDataSource runat="server" SelectCommand="&lt;Lists&gt;&lt;/Lists&gt;" DataSourceMode="ListOfLists" 
UseInternalName="True" ID="dataformwebpart1"></SharePoint:SPDataSource> </DataSources> <ParameterBindings>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/> <ParameterBinding Name="UserID" Location="CAMLVariable"
DefaultValue="CurrentUserName"/> <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
<ParameterBinding Name="ListName" Location="QueryString(ListName)" DefaultValue="test1"/> </ParameterBindings>
<DataFields>@__spAlertTemplate,__spAlertTemplate;@__spAllowContentTypes,__spAllowContentTypes;@__spAllowDeletion,__spAllowDeletion;
@__spAllowMultiResponses,__spAllowMultiResponses;@__spAnonymousPermMask,__spAnonymousPermMask;@__spAnonymousPermMask64,__spAnonymousPermMask64;
@__spAudit,__spAudit;@__spAuthor,__spAuthor;@__spBaseTemplate,__spBaseTemplate;@__spBaseType,__spBaseType;@__spCanReceiveEmail,
__spCanReceiveEmail;@__spContentTypes,__spContentTypes;@__spContentTypesEnabled,__spContentTypesEnabled;@__spCreated,__spCreated;
@__spCurrentChangeToken,__spCurrentChangeToken;@__spDefaultView,__spDefaultView;@__spDefaultViewUrl,__spDefaultViewUrl;
@__spDescription,__spDescription;@__spDirection,__spDirection;@__spDraftVersionVisibility,__spDraftVersionVisibility;
@__spEffectiveBasePermissions,__spEffectiveBasePermissions;@__spEmailAlias,__spEmailAlias;@__spEnableAssignToEmail,__spEnableAssignToEmail;
@__spEnableAttachments,__spEnableAttachments;@__spEnableMinorVersions,__spEnableMinorVersions;@__spEnableModeration,__spEnableModeration;
@__spEnableSyndication,__spEnableSyndication;@__spEnableVersioning,__spEnableVersioning;@__spEventReceivers,__spEventReceivers;
@__spEventSinkAssembly,__spEventSinkAssembly;@__spEventSinkClass,__spEventSinkClass;@__spEventSinkData,__spEventSinkData;
@__spExcludeFromTemplate,__spExcludeFromTemplate;@__spFields,__spFields;@__spFirstUniqueAncestor,__spFirstUniqueAncestor;
@__spFlags,__spFlags;@__spForceCheckout,__spForceCheckout;@__spForms,__spForms;@__spHasExternalEmailHandler,__spHasExternalEmailHandler;
@__spHasUniqueRoleAssignments,__spHasUniqueRoleAssignments;@__spHidden,__spHidden;@__spID,__spID;@__spImageUrl,__spImageUrl;
@__spInternalName,__spInternalName;@__spItemCount,__spItemCount;@__spItems,__spItems;@__spLastItemDeletedDate,__spLastItemDeletedDate;
@__spLastItemModifiedDate,__spLastItemModifiedDate;@__spLists,__spLists;@__spMultipleDataList,__spMultipleDataList;
@__spOnQuickLaunch,__spOnQuickLaunch;@__spOrdered,__spOrdered;@__spParentWeb,__spParentWeb;@__spParentWebUrl,__spParentWebUrl;
@__spPermissions,__spPermissions;@__spProperties,__spProperties;@__spPropertiesXml,__spPropertiesXml;@__spReadSecurity,__spReadSecurity;
@__spReusableAcl,__spReusableAcl;@__spRoleAssignments,__spRoleAssignments;@__spRootFolder,__spRootFolder;@__spRootFolderUrl,__spRootFolderUrl;
@__spSchemaXml,__spSchemaXml;@__spSendToLocationName,__spSendToLocationName;@__spSendToLocationUrl,__spSendToLocationUrl;
@__spShowUser,__spShowUser;@__spTitle,__spTitle;@__spVersion,__spVersion;@__spViews,__spViews;@__spWorkflowAssociations,__spWorkflowAssociations;
@__spWriteSecurity,__spWriteSecurity;</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">
<xsl:output method="html" indent="no"/> <xsl:decimal-format NaN=""/> <xsl:param name="dvt_apos">&apos;</xsl:param>
<xsl:param name="ListName">test1</xsl:param> <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"> <xsl:call-template name="dvt_1"/> </xsl:template>
<xsl:template name="dvt_1"> <xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[@__spTitle=$ListName]"/>
<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:call-template name="dvt_1.empty" />
</xsl:when> <xsl:otherwise><table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top"> <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<th class="ms-vh" width="1%" nowrap="nowrap"></th>
</xsl:if><th class="ms-vh" nowrap="">__spTitle</th><th class="ms-vh" nowrap="">__spID</th></tr>
<xsl:call-template name="dvt_1.body"> <xsl:with-param name="Rows" select="$Rows"/>
</xsl:call-template> </table></xsl:otherwise> </xsl:choose>
</xsl:template> <xsl:template name="dvt_1.body"> <xsl:param name="Rows"/>
<xsl:for-each select="$Rows"> <xsl:call-template name="dvt_1.rowview"/> </xsl:for-each>
</xsl:template> <xsl:template name="dvt_1.rowview"> <tr> <xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">ms-alternating</xsl:attribute> </xsl:if><td class="ms-vb">
<xsl:value-of select="@__spTitle" /></td><td class="ms-vb">
<xsl:value-of select="@__spID" /></td> <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<td class="ms-vb" width="1%" nowrap="nowrap">
<span ddwrt:amkeyfield="ID" ddwrt:amkeyvalue="ddwrt:EscapeDelims(string(@ID))" ddwrt:ammode="view"></span>
</td> </xsl:if> </tr> </xsl:template>
<xsl:template name="dvt_1.empty"> <xsl:variable name="dvt_ViewEmptyText">Nothing</xsl:variable>
<table border="0" width="100%"> <tr> <td class="ms-vb">
<xsl:value-of select="$dvt_ViewEmptyText" /> </td> </tr>
</table> </xsl:template> </xsl:stylesheet></Xsl> </WebPartPages:DataFormWebPart>

다 중 데이터 원본
저 희 는 SharePoint 에서 검색 항목 을 자주 사용 합 니 다. 그러나 SharePoint Designer 로 목록 을 맞 출 때 저희 가 얻 을 수 있 는 검색 항목 필드 가 모두 있 는 것 을 발견 할 수 있 습 니 다. 격 리 된 검색 필드 문자열 은 항목 의 정 보 를 더 많이 찾 아야 할 때 다 중 데이터 원본 을 사용 해 야 합 니 다. SharePoint Designer 에서 저 희 는 이름 을 부 릅 니 다."링크 원본" 을 만 들 었 습 니 다. 데이터 원본 의 상세 한 정 보 는 다음 그림 과 같 습 니 다.
위의 그림 에서 Rating 목록 은 test 1 목록 을 평가 하 는 목록 입 니 다. Rating 은 test 1 의 제목 을 조회 한 다음 에 한 보기에 서 test 1 의 제목 과 해당 하 는 제목 의 항목 의 평가 상황 (그리고 평가 날 짜 를 꺼 내야 합 니 다) 을 볼 필요 가 있 습 니 다. 다음 과 같 습 니 다.
코드 는 다음 과 같 습 니 다:
<WebPartPages:DataFormWebPart runat="server" IsIncluded="True" FrameType="None" NoDefaultStyle="TRUE" ViewFlag="0" Title="D?¨oy?Y???" 
__markuptype="vsattributemarkup" __WebPartId="{43FE3CE1-BF73-4433-91B7-4F3545D4B808}" id="g_43fe3ce1_bf73_4433_91b7_4f3545d4b808">
<DataSources><SharePoint:AggregateDataSource runat="server" IsSynchronous="false" SeparateRoot="true" id="dataformwebpart1">
<sources><SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="&lt;View&gt;&lt;/View&gt;">
<SelectParameters><asp:Parameter Name="ListID" DefaultValue="{84363D4D-19AD-4C8E-9743-B5EB85A8AF08}"/><asp:Parameter Name="WebURL"
DefaultValue="/test/"/></SelectParameters><DeleteParameters><asp:Parameter Name="ListID" DefaultValue="{84363D4D-19AD-4C8E-9743-B5EB85A8AF08}"/>
<asp:Parameter Name="WebURL" DefaultValue="/test/"/></DeleteParameters><UpdateParameters><asp:Parameter Name="ListID"
DefaultValue="{84363D4D-19AD-4C8E-9743-B5EB85A8AF08}"/><asp:Parameter Name="WebURL" DefaultValue="/test/"/></UpdateParameters>
<InsertParameters><asp:Parameter Name="ListID" DefaultValue="{84363D4D-19AD-4C8E-9743-B5EB85A8AF08}"/>
<asp:Parameter Name="WebURL" DefaultValue="/test/"/></InsertParameters></SharePoint:SPDataSource>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="&lt;View&gt;&lt;/View&gt;">
<SelectParameters><asp:Parameter Name="ListID" DefaultValue="{71C39267-AEB8-4111-B00F-161AC8C65EC4}"/><asp:Parameter Name="WebURL"
DefaultValue="/test/"/></SelectParameters><DeleteParameters><asp:Parameter Name="ListID" DefaultValue="{71C39267-AEB8-4111-B00F-161AC8C65EC4}"/>
<asp:Parameter Name="WebURL" DefaultValue="/test/"/></DeleteParameters><UpdateParameters><asp:Parameter Name="ListID"
DefaultValue="{71C39267-AEB8-4111-B00F-161AC8C65EC4}"/><asp:Parameter Name="WebURL" DefaultValue="/test/"/></UpdateParameters>
<InsertParameters><asp:Parameter Name="ListID" DefaultValue="{71C39267-AEB8-4111-B00F-161AC8C65EC4}"/><asp:Parameter Name="WebURL"
DefaultValue="/test/"/></InsertParameters></SharePoint:SPDataSource> </sources>
<aggregate><concat name="data source"><datasource name="Rating" id="0" Type="SPList"/><datasource name="test1" id="1" Type="SPList"/>
</concat></aggregate></SharePoint:AggregateDataSource></DataSources>
<datafields>@Title,?à¨o¨?a;@test1,test1;@rating,rating;@ID,ID;@ContentType,?¨2¨¨Y¨¤¨¤D¨a;@Modified,DT??¨o?à??;@Created,??????§¨o?à??;
@Author,??????§??;@Editor,DT????;@_UIVersionString,????à?;@Attachments,???t;@File_x0020_Type,???t¨¤¨¤D¨a;
@FileLeafRef,??3? (¨??¨?¨2?à¨a|죤);@FileDirRef,??¤??;@FSObjType,????¨¤¨¤D¨a;@_HasCopyDestinations,??¨?D????????à¨o;@_CopySource,????????;
@ContentTypeId,?¨2¨¨Y¨¤¨¤D¨a ID;@_ModerationStatus,¨|¨??¨2?á??¨??;@_UIVersion,UI ????à?;@Created_x0020_Date,??????§¨o?à??;@FileRef,URL ??¤??;
@Choices,Choices;</datafields> <XSL><xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" 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:variable name="dvt_1_automode">0</xsl:variable>
<xsl:variable name="RatingRows" select="/dsQueryResponse/Rating/Rows/Row" />
<xsl:template match="/"> <xsl:call-template name="dvt_1"/> </xsl:template>
<xsl:template name="dvt_1"> <xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/test1/Rows/Row"/>
<xsl:variable name="dvt_RowCount" select="count($Rows)" />
<xsl:variable name="IsEmpty" select="$dvt_RowCount = 0" />
<xsl:variable name="dvt_IsEmpty" select="$dvt_RowCount = 0" /> <xsl:choose>
<xsl:when test="$dvt_IsEmpty">
<xsl:call-template name="dvt_1.empty" /> </xsl:when>
<xsl:otherwise><table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top"> <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<th class="ms-vh" width="1%" nowrap="nowrap"></th> </xsl:if>
<th class="ms-vh" nowrap="" style="width: 227px">?à¨o¨?a</th>
<th class="ms-vh" nowrap="" style="width: 89px">DT????</th> <th class="ms-vh" nowrap="">Rating</th></tr>
<xsl:call-template name="dvt_1.body"> <xsl:with-param name="Rows" select="$Rows" />
</xsl:call-template> </table></xsl:otherwise> </xsl:choose>
</xsl:template> <xsl:template name="dvt_1.body">
<xsl:param name="Rows"/> <xsl:for-each select="$Rows">
<xsl:variable name="XPath"> <xsl:call-template name="dvt.xpath" />
</xsl:variable> <xsl:call-template name="dvt_1.rowview">
<xsl:with-param name="Pos" select="concat('_', ddwrt:Counter())" />
<xsl:with-param name="XPath" select="$XPath" />
</xsl:call-template> </xsl:for-each> </xsl:template>
<xsl:template name="dvt_1.rowview"> <xsl:param name="Pos" /> <xsl:param name="XPath" />
<tr> <xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">ms-alternating</xsl:attribute> </xsl:if>
<xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1"> <td class="ms-vb" width="1%" nowrap="nowrap">
<span ddwrt:amkeyfield="" ddwrt:amkeyvalue="string($XPath)" ddwrt:ammode="view"></span>
</td> </xsl:if> <td class="ms-vb" style="width: 227px">
<xsl:value-of select="@Title"/> </td>
<td class="ms-vb" style="width: 89px">
<asp:Label runat="server" id="ff1{$Pos}" text={@Editor}
__designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Text','','',string($XPath),'@Editor')}" />
</td> <td class="ms-vb">
<xsl:call-template name="Rating">
<xsl:with-param name="title"><xsl:value-of select="@Title" /></xsl:with-param> </xsl:call-template>
</td></tr> </xsl:template> <xsl:template name="Rating"> <xsl:param name="title" />
<xsl:variable name="rowsnumber" select="count($RatingRows[@test1=$title])"/> <xsl:choose>
<xsl:when test="$rowsnumber=0"> Not rated yet! </xsl:when>
<xsl:otherwise> <xsl:for-each select="$RatingRows[@test1=$title]">
<strong><xsl:value-of select="@rating"/></strong><xsl:text disable-output-escaping="yes">
&amp;nbsp;</xsl:text>(RateDate:<xsl:value-of select="ddwrt:FormatDate(string(@Created), 2052, 5)"></xsl:value-of>) </xsl:for-each>
</xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="dvt.xpath">
<xsl:for-each select="ancestor-or-self::*"><xsl:value-of select="concat('/node()[',count(preceding-sibling::node())+1,']')" />
</xsl:for-each> </xsl:template> <xsl:template name="dvt_1.empty">
<xsl:variable name="dvt_ViewEmptyText">Not Rated yet!</xsl:variable> <table border="0" width="100%">
<tr> <td class="ms-vb">
<xsl:value-of select="$dvt_ViewEmptyText" /> </td>
</tr> </table> </xsl:template></xsl:stylesheet></XSL> <parameterbindings>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
<ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
</parameterbindings></WebPartPages:DataFormWebPart>
  :  RatingRows Rating template         XSLT  。

 
2)ParameterBindings
DataForm Web Part 에 필요 한 모든 매개 변 수 를 여기에 정의 합 니 다. 이 매개 변 수 는 DataForm 의 데이터 원본 과 XSLT 에 동시에 적 용 됩 니 다. DataForm Web Part 는 통 일 된 매개 변 수 를 정의 할 수 있 습 니 다. SPDataSource 의 Selectcommand 는 매개 변 수 를 포함 할 수 있 습 니 다. DataFormParameter 의 값 은 매개 변수 에서 나 올 수 있 습 니 다. XSLT 의 매개 변수 값 도 가능 합 니 다.통일 적 으로 정 의 된 매개 변수 입 니 다. DataForm 에서 정 의 된 매개 변 수 를 제공 하 는 인터페이스 는 다음 과 같 습 니 다.
5 개의 매개 변수 원본 을 제공 하 는 것 을 볼 수 있 습 니 다. 그 중에서:
> > 컨트롤: 페이지 에서 온 컨트롤 값
> > 폼: 이 건 지난 블 로그 에서 이 인 자 를 사 용 했 습 니 다 [SharePoint Designer 기법 - 1] DataView 와 Form Web Part 를 사용 하여 목록 의 키 워드 를 조회 합 니 다.
> > 검색 문자열: URL 의 인자
 
3)XSL
XSL 은 주로 XSLT 와 XPath 의 것 입 니 다. DataForm 을 잘 맞 추 려 면 비교적 숙련 된 XSLT 와 XPath 가 필요 합 니 다.
SharePoint 는 XSLT 의 확장 함 수 를 제공 합 니 다. 관련 정보:
SharePoint Data View Web Part Extension Functions in the ddwrt Namespace (2003 버 전이 지만 참고 가능)
SharePoint Data View Conditional Formatting based on user permissions (이것 은 WSS 3.0 의 새로운 확장 함수 IfHasRights 에 대한 상세 한 설명 입 니 다. 이 함 수 는 현재 사용자 가 목록 에 대해 데 이 터 를 선별 하 는 조건 으로 어떤 권한 을 가지 고 있 는 지 판단 하 는 데 사용 할 수 있 습 니 다. 실제 적 으로 유용 한 확장 함수 입 니 다)
 
DataForm 에 대한 이 야 기 는 아직 끝나 지 않 았 습 니 다!
데이터 디 스 플레이 에 대한 심도 있 는 맞 춤 형 제작 은 우리 의 목적 중 하나 이다. 우리 의 또 다른 목적 은 표 시 된 데이터 와 상호작용 을 하 는 것 이다 (맞 춤 형 페이지, 맞 춤 형 정렬, 맞 춤 형 그룹). 데 이 터 를 조작 하 는 것 이다 (추가, 수정, 삭제).DataForm 이 제공 하 는 기능 을 이용 하여 편리 하 게 맞 춤 형 편집 을 하고 페이지 를 추가 할 수 있 습 니 다. 다음 글 을 기다 리 지 못 한다 면 SharePoint Designer Team 의 Javascript 으로 편집 하고 페이지 를 추가 하 는 필드 컨트롤 에 관 한 글 을 먼저 볼 수 있 습 니 다. Using Javascript to Manipulate a List Form Field

좋은 웹페이지 즐겨찾기