Ajoutez une case à chaque ligne d'une listviewwebPart
-
14-11-2019 - |
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.
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