Как создать пользовательские свойства в DataFormWebPart - PullRequest
0 голосов
/ 09 августа 2011

У меня есть пользовательская веб-часть, над которой я работаю, которая имеет свойство ссылки XSL, которое связывает ее с файлом XSLT, который запускает веб-часть.Я хочу создать еще одно логическое поле, которое при проверке веб-части будет ссылаться на другой файл XSLT.Я не могу использовать метод get / set, потому что это не стандартная веб-часть.У меня нет страницы C #, которая управляет этой веб-частью.У меня есть файл .webpart, в котором есть все значения свойств, и я думаю, что именно здесь мне нужно поместить код.Я просто не уверен, как это сделать.Любая помощь приветствуется.Вот часть файла .webpart:

<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
  <type name="Microsoft.SharePoint.WebPartPages.DataFormWebPart, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
  <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
  <properties>
    <property name="PageSize" type="int">-1</property>
    <property name="HelpMode" type="helpmode">Modeless</property>
    <property name="Height" type="string" />
    <property name="SampleData" type="string" null="true" />
    <property name="AllowConnect" type="bool">True</property>
    <property name="CatalogIconImageUrl" type="string" />
    <property name="XslLink" type="string">/home/appbar.xslt</property>
    <property name="AllowClose" type="bool">True</property>
    <property name="Hidden" type="bool">False</property>
    <property name="MissingAssembly" type="string">Cannot import this Web Part.</property>
    <property name="TitleIconImageUrl" type="string" />
    <property name="ChromeState" type="chromestate">Normal</property>
    <property name="FireInitialRow" type="bool">True</property>
    <property name="Description" type="string" />
    <property name="AllowMinimize" type="bool">True</property>
    <property name="Xsl" type="string" null="true" />

<property name="ExportMode" type="exportmode">All</property>
    <property name="AllowZoneChange" type="bool">True</property>
    <property name="Default" type="string" />
    <property name="UseSQLDataSourcePaging" type="bool">True</property>
    <property name="ParameterBindings" type="string">
                    &lt;ParameterBinding Name="ListName" Location="None" DefaultValue="MDocLinks"/&gt;
                    &lt;ParameterBinding Name="dvt_apos" Location="Postback;Connection"/&gt;
                    &lt;ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/&gt;
                    &lt;ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/&gt;
                </property>
    <property name="DisplayName" type="string" />
    <property name="NoDefaultStyle" type="string">TRUE</property>
    <property name="Title" type="string">MDock</property>
    <property name="AllowHide" type="bool">True</property>
    <property name="ViewFlag" type="string">0</property>
  </properties>
</data>
</webPart>
</webParts>

Это основная часть.Я не хотел, чтобы заполнить слишком много страницы.:)

Ответы [ 2 ]

1 голос
/ 16 августа 2011

.webpart - это просто определение для веб-части. Код бэкэнда уже существует, вы просто определяете, какая сборка / класс отвечает за обработку.

Чтобы выполнить то, на что вы ссылаетесь, вам потребуетсяСоздайте новую веб-часть в Visual Studio, которая наследуется от DataFormWebPart.

Отсюда вы можете добавить дополнительное свойство и логику условного поиска.

0 голосов
/ 18 августа 2011

Вам необходимо расширить эту веб-часть с помощью кода C #, а затем представить следующее свойство в качестве соединения.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.dataformwebpart.xsllink.aspx

Чтобы увидеть, как вы можете расширить его, вот пример:

http://www.chaholl.com/archive/2010/01/26/extending-the-dataform-web-part-to-allow-custom-field-controls.aspx

...