2010-03-03 1 views
0

내 DataFormWebPart 안에는 목록을 참조하고 쿼리하는 'DataSourcesString'속성이 있습니다.Sharepoint DataFormWebPart

DataFormWebPart가 표시되는 페이지에 따라 'DataSourcesString'내에서 쿼리를 구성 할 수 있어야합니다 (아래 코드에서 'Dispute Resolution'문자열을 매개 변수화해야 함).

XSL 편집기 또는 매개 편집기를 통해 웹 파트를 수정하여 매개 변수를 변경하는 방법이 있다면 누구에게 알 수 있습니까?

'DataSourcesString'과 관련된 웹 파트의 코드는 아래

<property name="DataSourcesString" type="string">&lt;%@ Register TagPrefix="sharepoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&gt;&lt;sharepoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&amp;lt;View&amp;gt;&amp;lt;Query&amp;gt;&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name=&amp;quot;ID&amp;quot;/&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name=&amp;quot;Primary&amp;quot;/&amp;gt;&amp;lt;Value Type=&amp;quot;Text&amp;quot;&amp;gt;Dispute Resolution&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;&amp;lt;/View&amp;gt;" UseInternalName="True" IncludeHidden="True" ID="datasource1"&gt; 

감사합니다! 나는 스크린 샷 없이는 그렇게 명확하지 않을지도 모른다. ..

+0

당신은 셰어 포인트를 사용할 수 있습니다 귀하의 쿼리 문자열에 무엇이든이 MyVar = 추가하여 필터링 할 수 있어야한다 이것을 구성하는 디자이너? – zincorp

답변

0

런타임에 매개 변수를 조작 한 것을 발견 한 유일한 방법은 C# 코드에서였다. 여기

이 필요한 단계는 다음과 같습니다

  1. 가 ASCX 컨트롤로 DataFormWebPart 코드를 덤프합니다. (또는 원하는 경우 사용자 정의 웹 파트).
  2. 컨트롤 뒤에있는 코드에서 텍스트 상자와 같은 다른 사용자 컨트롤처럼 ID를 통해 DataFormWebPart를 참조하십시오.
  3. DataFormWebPart 개체를 사용하여 데이터 원본 (필요한 경우) 및 해당 쿼리를 조작합니다. 모든 매개 변수에 대한 핸들을 얻을 수 있습니다.
1

이 작업은 DataForm의 QueryString 매개 변수를 사용하여 수행 할 수 있습니다. 웹 파트 만 내보낼 수 있다고 가정합니다. 따라서 webpart를 내보내고 .webpart를 바탕 화면에 저장하십시오. 를 열고과 같이 수정 :

당신의 DataSourcesString에서

완전히 where 절을 제거 :

<property name="DataSourcesString" type="string">&lt;%@ Register TagPrefix="sharepoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&gt;&lt;sharepoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&amp;lt;View&amp;gt;&amp;lt;Query&amp;gt;&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name=&amp;quot;ID&amp;quot;/&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;/Query&amp;gt;&amp;lt;/View&amp;gt;" UseInternalName="True" IncludeHidden="True" ID="datasource1"&gt; 

<property name="ParameterBindings" type="string"> 노드에서 추가

&lt;ParameterBinding Name="MyVariable" Location="QueryString(MyVar)"/&gt; 

를 XSL에서는 WebPart 자체에 대한, &lt;xsl:param name="dvt_partguid" /&gt;을 찾아 바로 아래에 추가 :

&lt;xsl:param name="MyVar" /&gt; 

마지막으로 , select="/dsQueryResponse/Rows/Row를 찾을 수 수정 :

select="/dsQueryResponse/Rows/Row[@Primary='$MyVar'] 

저장는 WebPart 다시 업로드, 당신은 지금

+0

감사합니다. 웹 파트에 대한 쿼리 문자열을 정확히 편집 할 수있는 곳을 말해 줄 수 있습니까? – van

+0

웹 파트의 쿼리 문자열에 연결을 만들었습니다. 그러나 MyVar의 매개 변수 편집기에 입력 할 내용을 파악할 수 없습니다. 나는 이것을 시도했지만 올바른 결과를 얻지 못했습니다 ... ParameterBinding NAME = "MyVariable을 '위치 ="QueryString을 (LT; &한다 & LT; 식 &한다 & LT;의 FieldRef NAME = & quot; 차 & quot;/&한다 & LT; 값 형식 = & quot; 텍스트 & quot; &한다 분쟁 & LT/값 &한다 & LT/식 &한다 & LT/어디 &한다) "/> – van

+0

I가 붙여으로 정확히 같아야 < ParameterBinding Name = "MyVariable"Location = "QueryString (MyVar) "/ > -"MyVar "라는 QueryString 매개 변수를 가져 오도록 알려줍니다. – zincorp