Как получить отрендеренные данные Sharepoint WebPart с использованием клиентской объектной модели
Я пытаюсь получить доступ к данным удаленно с сайта sharepoint 2010 с помощью клиентской объектной модели. Из-за некоторых ограничений я не могу использовать запрос CAML, даже если я использую его, я не могу отфильтровать нужную аудиторию на основе логина пользователя (если вы можете мне помочь в отношении запроса CAML, то тоже хорошо: я не знаю, как получить имя текущей аудитории пользователя и все аудитории, использующие объектную модель CAML/ клиент. Этот код находится на мобильном сайте и вызывает сайт точки обмена, как показано в моем коде). Следующий код работает хорошо, но не может получить контент из веб-части. Может ли кто-нибудь помочь по этому поводу.
using (ClientContext ctx = new ClientContext("https://mysite.com/Pages/Default.aspx"))
{
ctx.ExecutingWebRequest += new EventHandler<WebRequestEventArgs> (clientContext_ExecutingWebRequest);
File home=ctx.Web.GetFileByServerRelativeUrl("/Student/Pages/default.aspx");
//get the web part manager
Microsoft.SharePoint.Client.WebParts.LimitedWebPartManager wpm = home.GetLimitedWebPartManager(Microsoft.SharePoint.Client.WebParts.PersonalizationScope.Shared);
IEnumerable<Microsoft.SharePoint.Client.WebParts.WebPartDefinition> wpds = null;
//create the LINQ query to get the web parts from
//the web part definition collection
wpds = ctx.LoadQuery(wpm.WebParts.Include(wp => wp.Id,wp => wp.WebPart));
//load the list of web parts
ctx.ExecuteQuery();
//enumerate the results
foreach (Microsoft.SharePoint.Client.WebParts.WebPartDefinition wpd in wpds)
{
string title= wpd.WebPart.Title;
Microsoft.SharePoint.Client.WebParts.WebPart wpart = wpd.WebPart;
????? How to render and receive the data (looking for the same data When you browse the site with the browser)
}
Code continues...
1 ответ
Я тоже борюсь с этим вопросом. Похоже, что это невозможно с объектной моделью клиента. На самом деле я попросил об этом одного сотрудника SharePoint на Build Conference 2012.
Но с помощью SharePoint Designer фактически можно загрузить требуемый WebPart. Fiddler может пригодиться, чтобы отследить, какая служба доставит вам биты.
Взгляните на этот пост здесь на SharePoint StackExchange
К сожалению, пост не даст вам никакого конкретного способа решить эту проблему.
Удачи тебе!