Hallo zusammen,
ich versuche eine dynamische Verbindung zu SharePoint herzustellen.
und zwar habe ich 2 sitecollection wo versichedene Listen vorhanden sind.
Ich habe eine Textbox eingebaut, damit der Benutzer eingeben kann, zu welcher Sitecollection er sich verbinden möchte.
Anschließend sollen die Listen in eine Combobox angezeigt werden.
Ich hab sowas änliches schon über den webservice gemacht und da hieß die Methode GetListCollectionAsync().
Kann mir einer evtl. helfen wir ich das über den Object Model realisieren kann ?
MfG
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
hallo tonikln,
using (ClientContext context = new ClientContext("http://..."))
{
ListCollection lists = context.Web.Lists;
context.Load(lists);
context.ExecuteQuery();
...
}
Das würde alle Listen innerhalb vom übergebenen Context ermitteln. Ich glaube SiteCollection übergreifend kannst du mit dem Client Object Model nichts machen. Ganz sicher bin ich mir da aber nicht.
Danke dir Felix...
was würdest du denn dann empfehlen ?
Soll ich das über den Webservice machen ?
Das problem ist nur folgendes:
Was wäre wenn ich morgen eine weitere Sitecollection anlege, dann muss ich wieder an den Code ran und den WS meiner neuen sitecollection wieder einbinden.
Ich möchte das nämlich gerne unabhängig haben...
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
Hallo,
ich habe die Anforderung noch nicht so ganz verstanden.
Was hat es mit der TextBox auf sich und wo genau hast du diese eingebaut?
Im Moment stelle ich mir das ganze so vor:
Du hast eine Silverlight-Anwendung in der eine TextBox eingebunden ist, wo dann der Name der SiteCollection angegeben werden kann. Im Anschluss werden alle Listen, die in der eingegebenen SiteCollection verfügbar sind, ermittelt und in einer ComboBox aufgelistet. Stimmt das so in etwa?
Folgende Fragen habe ich noch:
Hallo,
ich habe die Anforderung noch nicht so ganz verstanden.
Was hat es mit der TextBox auf sich und wo genau hast du diese eingebaut?
Die Textbox ist auf der Mainpage, dort gibt der user den link ein
z.B. http://mainserver.de/sitecollection
Im Moment stelle ich mir das ganze so vor:
Du hast eine Silverlight-Anwendung in der eine TextBox eingebunden ist, wo dann der Name der SiteCollection angegeben werden kann. Im Anschluss werden alle Listen, die in der eingegebenen SiteCollection verfügbar sind, ermittelt und in einer ComboBox aufgelistet. Stimmt das so in etwa?
stimmt vollkommen
Folgende Fragen habe ich noch:
- was ist der Hintergrund?
- Muss es unbedingt Silverlight sein? Wenn du das über ein gewöhnliches WebPart machst, hast du Zugriff aufs SharePoint Objekt Modell und somit auch mehr Möglichkeiten.
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
Die Textbox ist auf der Mainpage, dort gibt der user den link ein
z.B.
>
Also du hast mit dem Client Objekt Modell soweit ich weiß keinen Zugriff auf WebApplication- und Farmobjekte. D.h. die oberste Ebene (der ClientContext) ist die SiteCollection.
Was du aber machen kannst ist folgendes:
Wenn der Benutzer die oben genannte URL eingibt, dann versuchst du eine Instanz von ClientContext zu erzeugen und übergibst die URL. Wenn das geklappt hat und du Zugriff auf ClientContext.Site und ClientContext.Web hast, dann existiert die SiteCollection auch. Und in diesem Fall kannst du dann über ClientContext.Web.Lists alle Listen ermitteln.
Trotzdem kommt mir die Anforderung etwas komisch vor. Weil egal wo du die Silverlight Application einbindest ... du befindest dich so oder so in einer bestimmten Site.
hi,
hast du zufällig einen Link für mich, wo Beispiele vorhanden sind ?
das wäre sehr hilfreich 😃.
Gruß
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
Hallo,
also auf die Schnelle habe ich das hier gefunden.
Da werden auch über eine Silverlight Application Listen-Details ausgelesen und angezeigt. Allerdings wird in dem Beispiel der ClientContext mit "ApplicationContext.Current.Url" initialisiert. Das passt ja für deinen Fall nicht ganz. Du musst den ClientContext mit der übergebenen Url initialisieren und prüfen, ob es geklappt hat.
EDIT:
Evtl. ist dieses Codesample auch interessant.
Supeeeeer das funktioniert 😃
allerdings klappt das nur für SharePoint 2010 😦
Bei 2007 kommt keine Verbindung zustande, d.h. mit SP 2007 ist das nicht ganz kompatibel.
Meine Frage ist jetzt noch, kann man das auch mit 2007 kombinieren ?
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
Meine Frage ist jetzt noch, kann man das auch mit 2007 kombinieren ?
Hallo,
nein, das klappt leider nur in SharePoint 2010. Das Client Objekt Modell ist neu in 2010. In 2007 musst du über die normalen Webservices arbeiten.
Hi...
erstmal danke für die schnelle antworten die ich von dir erhalten habe, aber eine Frage habe ich noch 😃
In ASP.NET habe ich etwas ähnliches gemacht. Ich habe Daten über den WebService geholt und sie mir dann in einem DataSet gespeichert.
Könntest du mir evtl. wie ich die Daten, die ich über das OM erhalte in einem DataSet oder in einem DataTable speichern kann ?
Das benötige ich nämlich, damit ich nicht für z.B. 20 Listen immer neu Mappen muss. Die Daten sollen automatisch in die DataGridView eingebunden werden.
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!
Hi,
das problem ist aber, dass ich in silverlight keine datatable oder ähnliches habe.
was empfehlt ihr mir `?
Gruß
90% aller Fehler sitzen zwichen tastatur und Stuhl!!!