Могу ли я динамически отфильтровать результаты CQWP, используя значение из cookie?
-
16-10-2019 - |
Вопрос
Я могу отфильтровать результаты CQWP, используя строку запроса, используя ключевое слово (pageQueryString) (ссылка: http://blogs.msdn.com/b/ecm/archive/2010/05/14/what-new-with-the-content-query-web-part.aspx Есть ли аналогичный способ отфильтровать результаты, используя значение из cookie?
Решение
Я думаю, что вы должны использовать идею из этой удивительной статьи Эндрю Коннеля:
Все, что вам нужно сделать на самом деле, это заменить Request.QueryString
к Request.cookies.
Другие советы
Вы, вероятно, сможете сделать это, но вы не сможете сделать это в самом CQWP. XSL в CQWP работает на стороне сервера, а cookie будет жить на стороне клиента. Вместо этого вы можете использовать скрипт (я бы порекомендовал jQuery) для прочтения файла cookie и дальнейшего фильтрации того, что CQWP отправил в браузер.
В качестве альтернативы, вы можете использовать скрипт на стороне клиента полностью с клиентом OM или Spservices.
Вы можете получить информацию от файла cookie. Вот что я сделал.
private string GetCookieInfo(string cookieName)
{
string cookieInformation = null;
if (HttpContext.Current.Request.Cookies[cookieName] != null)
{
cookieInformation = HttpContext.Current.Request.Cookies[cookieName].Value;
}
return cookieInformation;
}
Я использую значение, возвращаемое в Cookie в CAML -запросе, чтобы получить информацию из списка SharePoint. Возвращенная информация списка включает значение для веб -URL, которое используется CQWP, чтобы узнать, какие данные отображаются.