在ListViewWebpart的每一行添加一个复选框

时间:2011-05-15 23:19:46

标签: sharepoint checkbox wss

我正在开发一个WSS 3站点,它有一个显示各种列的ListViewWebpart。

我需要为每一行添加一个复选框,并为标题添加一个按钮,为所选行执行服务器端操作。

我是否需要创建自己的自定义webpart或ListViewWebpart支持复选框?

为每行添加复选框

我找到了一篇帖子Checkbox in 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 个答案:

答案 0 :(得分:1)

这是一个用于创建自定义Web部件的post,然后您可以使用找到的帖子(ListViewWebpart中的Checkbox)向您的自定义Web部件添加一个复选框。

请注意,list.Fields.AddFieldAsXml(stringWithXmlFieldDefinition);最终可能会向您的sharepoint添加许多重复的复选框。可以从数据库中删除重复项,并位于 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

即可