Хорошо, поэтому я нашел "обходной путь" для этого.Я постараюсь изложить это как можно проще.
- Создайте новую страницу ASPX, на которой есть "
Core Results Web Part
" и "Cross-Web Part query ID
" в разделе "Results Query Options
".в свойствах, установленных на "User query
". - Мы будем называть эту страницу изнутри "
Page View Web Part
", частью wep, которая загружает другую страницу в iframe.Затем мы добавим запрос к URL-адресу страницы, которая загружается в «Page View Web Part
».(например, site.com/ourAspxFromStep1.aspx?k=author:first%20last
)
Надеюсь, это понятно.Я добавил веб-части с кодом на стороне сервера c # динамически при загрузке страницы на основе значений из списка, чтобы запросы динамически создавались при загрузке страницы.Дайте мне знать, если у вас есть комментарии или вопросы.
Вот моя клиентская функция, которую я вызываю, которая динамически добавляет веб-части.core_wp_for_embed.aspx
- это файл, упомянутый выше в шаге 1.
protected void refreshFeeds(string tmpUserName, SPUserToken userToken) {
using(SPSite site = new SPSite("http://www.site.com")) {
using(SPWeb web = site.OpenWeb()) {
web.AllowUnsafeUpdates = true;
SPFile file = web.GetFile(web.Url + "/currentPage.aspx");
using(SPLimitedWebPartManager webPartManager =
file.GetLimitedWebPartManager(PersonalizationScope.User)) {
SPLimitedWebPartCollection webparts = webPartManager.WebParts;
int j = webparts.Count;
for (int k = j - 1; k >= 0; k--) {
Microsoft.SharePoint.WebPartPages.WebPart wp =
(Microsoft.SharePoint.WebPartPages.WebPart)webparts[k];
if (wp.GetType().ToString() ==
"Microsoft.SharePoint.WebPartPages.PageViewerWebPart") {
webPartManager.DeleteWebPart(wp);
}
}
// Zone should be cleared. Now loop through list on users site and add web parts for each item
SPSite site2 = new SPSite("http://www.site.com/personal/" + tmpUserName);
SPWeb web2 = site2.OpenWeb();
SPList list = web2.Lists["SomeUserList"];
int i = 0;
foreach(SPListItem currentItem in list.Items) {
if(Convert.ToBoolean(currentItem["BooleanField"]) == true) {
PageViewerWebPart pvwp = new PageViewerWebPart();
pvwp.Title = currentItem["Title"].ToString();
pvwp.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
pvwp.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.TitleOnly;
pvwp.ContentLink = "http://www.site.com/core_wp_for_embed.aspx?k=scope:"
+ currentItem["Item_Scope"].ToString();
pvwp.AllowEdit = true;
webPartManager.AddWebPart(pvwp, "someZone", i);
webPartManager.SaveChanges(pvwp);
i++;
}
}
}
web.Update();
web.AllowUnsafeUpdates = false;
}
}
Response.Redirect(Request.RawUrl);
}