Question

Je travaille sur un site WSS 3 qui dispose d'une ListViewWebPart affichant diverses colonnes.

J'ai besoin d'ajouter une case à cocher à chaque ligne et un bouton à l'en-tête qui effectuera une action côté serveur pour les lignes sélectionnées.

Dois-je créer mon propre webPart personnalisé ou les cases à cocher ListViewWebPart peuvent-elles prendre en charge?

Ajout de cases à cocher à chaque ligne

J'ai trouvé un post BOIE DE VÉRIFICATION DANS LISTVIEDWWEBPART qui suggère

... Pour ajouter une case à cocher, pour sélectionner plusieurs listem, dans la liste personnalisée, déclarez une chaîne XML comme suit.

<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>

et appelez la liste.Fields.Addfieldasxml(«String xml»);. Incluez cela comme une première colonne dans la vue de votre liste personnalisée.

Je suppose que cette dernière partie nécessite un Splist. Par exemple

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

Ajout d'un bouton à la ligne d'en-tête

Une option pour le bouton d'en-tête est un CoustomAction. Cela devrait créer un bouton dans la barre d'outils.

Était-ce utile?

La solution

Voici une Publier Pour créer un web parti personnalisé, vous pouvez ensuite ajouter une case à cocher à votre web parti personnalisé à l'aide de la publication que vous avez trouvée (boîte à cocher dans ListViewWebPart).

Soit conscient que,list.Fields.AddFieldAsXml(stringWithXmlFieldDefinition); Peut finir par ajouter de nombreuses cases à cocher dupliquées à votre SharePoint. Le dupliqué peut être supprimé de la base de données et se trouvent à Tous les listes table, tp_fields colonne.

Pour trouver les bons champs, vous pouvez rechercher par la liste GUID.

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

Ensuite, mettez à jour les champs

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'

Vous pouvez simplement ajouter un bouton par

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

Mais peut-être que vous avez besoin de créer une autre barre d'outils pour maintenir le bouton, vous pouvez même créer votre propre barre d'outils. Vous avez juste besoin de le mettre C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\YourCutomToolBar.ascx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top