Posso filtrare i risultati in modo dinamico CQWP con valore da un biscotto?
-
16-10-2019 - |
Domanda
Sono in grado di filtrare i risultati CQWP utilizzando la stringa di query utilizzando la parola chiave (PageQueryString) (riferimento: http://blogs.msdn.com/b/ecm/archive/2010/05/14/ what-s-new-con-il-contenuti-query-web-part.aspx ) C'è un modo simile per filtrare i risultati utilizzando il valore da un cookie?
Soluzione
Credo che si dovrebbe utilizzare l'idea da questo fantastico articolo di Andrew Connel:
Tutto quello che devi fare in realtà, è di sostituire Request.QueryString
a Request.Cookies .
Altri suggerimenti
Probabilmente sarete in grado di farlo, ma non è possibile farlo nel CQWP stesso. L'XSL nel CQWP viene eseguito lato server, e il cookie sta per lato client dal vivo. È invece possibile utilizzare lo script (vi consiglio jQuery) per leggere il filtro biscotto e ulteriormente ciò che il CQWP ha inviato al browser.
In alternativa, è possibile utilizzare lo script lato client del tutto sia con il Cliente OM o SPServices .
È possibile ottenere le informazioni da un cookie. Ecco quello che ho fatto.
private string GetCookieInfo(string cookieName)
{
string cookieInformation = null;
if (HttpContext.Current.Request.Cookies[cookieName] != null)
{
cookieInformation = HttpContext.Current.Request.Cookies[cookieName].Value;
}
return cookieInformation;
}
Io uso il valore restituito nel cookie nella query CAML per ottenere informazioni da un elenco di SharePoint. Le informazioni elenco restituito include un valore per l'URL web, che viene utilizzato dal CQWP di sapere quali dati alla visualizzazione.