Wer für Sharepoint Web Forms und/oder Controls entwickelt, hatte vielleicht auch schon einmal das Bedürfnis, eine Sharepoint Liste als Datenquelle für z.B. eine RadioButton List zu verwenden. Dies lässt sich glücklicherweise mit geringem Aufwand umsetzen:
Hier ist erst einmal unsere Sharepoint Beispielliste:
Und hier die RadioButton List, an die wir die Liste binden wollen:
Wichtig sind hier die Properties DataTextField und DataValueField, die wie angezeigt zu belegen sind.
Nun benötigen wir noch einige wenige Zeilen Quellcode, um den Inhalt der Liste in ein Dictionary einzulesen und dieses als Datenquelle an unsere RadioButton List zu binden:
1: using System;
2: using System.Collections.Generic;
3: using System.Text;
4: using Microsoft.SharePoint;
5: using System.Web.UI.WebControls;
6: using System.Web.UI;
7:
8: public static class CommonFunctions
9: {
10: public static void BindDataBoundControl(DataBoundControl dataBoundList, SPList list)
11: {
12: //Einträge aus der Liste in ein Dictionary einlesen
13: IDictionary<int, string> listItems = new Dictionary<int, string>();
14: foreach (SPListItem item in list.Items)
15: {
16: listItems.Add(item.ID, item.Title);
17: }
18: //Dictionary an dataBoundList binden
19: dataBoundList.DataSource = listItems;
20: dataBoundList.DataBind();
21: }
22: }
Zu guter Letzt noch der Aufruf für unsere Beispielliste:
1: //"web" ist das SPWeb, in dem sich die Liste befindet
2: SPList geschlechtList = web.Lists["PersonenGeschlecht"];
3: CommonFunctions.BindDataBoundControl(Geschlecht, geschlechtList);
Das war's :-).