Sharepoint DataFormWebPart - PullRequest
       28

Sharepoint DataFormWebPart

0 голосов
/ 03 марта 2010

В моем DataFormWebPart у меня есть свойство DataSourcesString, которое ссылается на список и запрашивает его.

В зависимости от того, на какой странице отображается DataFormWebPart, мне нужно иметь возможность настроить запрос (параметризовать строку «Разрешение споров» в приведенном ниже коде) внутри «DataSourcesString».

Кто-нибудь знает, есть ли способ параметризовать это путем изменения веб-части с помощью редактора 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;

Спасибо! Я ценю, что это не может быть так ясно без скриншотов ..

Ответы [ 2 ]

1 голос
/ 04 марта 2010

Это можно сделать с помощью параметра QueryString в DataForm. Я предполагаю, что вы можете экспортировать только веб-часть. Итак, экспортируйте веб-часть и сохраните .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 для самой веб-части найдите &lt;xsl:param name="dvt_partguid" /&gt; и чуть ниже добавьте:

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

Наконец, найдите select="/dsQueryResponse/Rows/Row и измените его следующим образом:

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

Сохраните веб-часть, загрузите ее обратно, и теперь вы сможете фильтровать ее, добавив MyVar = Что угодно в строку запроса

0 голосов
/ 03 марта 2010

Единственный способ, которым я нашел манипулирование параметрами во время выполнения, был из кода C # позади.

Вот необходимые шаги:

  1. Дамп вашего кода DataFormWebPart в элемент управления ascx. (или пользовательская веб-часть, если хотите).
  2. В коде элемента управления ссылайтесь на свой DataFormWebPart через его идентификатор, как и на любой другой пользовательский элемент управления, например текстовое поле.
  3. Используйте объект DataFormWebPart, чтобы поиграть с его источником данных (если требуется) и его запросами. Вы можете получить ручку по всем его параметрам.
...