Добавьте флажок к каждой строке ListViewWebpart - PullRequest
1 голос
/ 16 мая 2011

Я работаю на сайте WSS 3, на котором ListViewWebpart отображает различные столбцы.

Мне нужно добавить флажок для каждой строки и кнопку в заголовке, которая будет выполнять действия на стороне сервера для выбранных строк.

Нужно ли создавать свою собственную веб-часть или могут ли флажки ListViewWebpart поддерживать?

Добавление флажков в каждую строку

Я нашел сообщение Флажок в ListViewWebpart , который предлагает

... чтобы добавить флажок, чтобы выбрать несколько listitem, в пользовательском списке, объявить строка xml следующим образом.

<Field Type="Computed" ReadOnly="TRUE" Name="ListItemSelection" DisplayName="Select" Sortable="FALSE" Filterable="FALSE" EnableLookup="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="ListItemSelection">
<FieldRefs>
<FieldRef Name="ID" />
</FieldRefs>
<DisplayPattern>
<HTML><![CDATA[<input type="checkbox" ]]></HTML>
<HTML><![CDATA[LItemId="]]></HTML>
<Column Name="ID" HTMLEncode="TRUE" />
<HTML><![CDATA["/> ]]></HTML>
</DisplayPattern>
</Field>

и позвоните list.Fields. AddFieldAsXml ( «XML Строка») ;. Включить это в качестве первого столбец в представлении пользовательского списка.

Я предполагаю, что последняя часть требует SPList. Например.

SPList list = SPContext.Current.Web.Lists["MyList"];
list.Fields.AddFieldAsXml(stringWithXmlFieldDefinition);

Добавление кнопки в строку заголовка

Одним из вариантов кнопки заголовка является CustomAction . Это должно создать кнопку на панели инструментов.

1 Ответ

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

Вот запись для создания пользовательской веб-части, затем вы можете добавить флажок в свою пользовательскую веб-часть, используя найденную запись (флажок в ListViewWebpart).

Имейте в виду, что list.Fields.AddFieldAsXml(stringWithXmlFieldDefinition); может в конечном итоге добавить много дублирующихся флажков к вашей точке обмена.Дублированные могут быть удалены из базы данных и расположены в AllLists таблица, tp_Fields столбец.

Чтобы найти нужные поля, вы можете выполнить поиск по списку guid.

declare @xmlString as xml
Select  @xmlString = tp_Fields
From        [WSS_Content].[dbo].[AllLists]
Where   tp_id ='xxxx'
Select @xmlString

, затем обновить поля

declare @string as varchar(max)
set @string ='new value without duplicated checkbox'
UPDATE [WSS Content] . [dbo] . [AlILists)
SET [tp_Fields] = @string
WHERE tp_ID = 'xxx'

Вы можете просто добавить кнопку с помощью

ToolBarButton newbtn = (ToolBarButton)Page.LoadControl("~/_CONTROLTEMPLATES/ToolBarButton.ascx");

но, возможно, вам нужно создать другую панель инструментов, чтобы удерживать кнопку, вы даже можете создать свою собственную панель инструментов.Вам просто нужно положить его в C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\YourCutomToolBar.ascx

...