Предпочтительный ответ Sibirman вернет только необработанный запрос для представления. Пользовательские фильтры фактически добавляются к URL-адресу (как часть строки InplviewHash), когда пользователь применяет действие фильтра.
например # InplviewHashf16272c0-c177-42d7-9638-35fd75c90348 = WebPartID% 3D% 7BF16272C0 - C177-42D7-9638-35FD75C90348% 7D- FilterField1% 3DProjectRef- FilterValue1 % 3DProject% 25201- FilterField2% 3DAddress- FilterValue2% 3DPilbara
В INPLVIEW.js и других файлах SP JavaScript в / _layouts есть функции, которые включают функции для декодирования этого и повторной инициализации представления, но я не смог все это расшифровать.
DecodeHashAsQueryString и InitGridFromView - хорошее место для начала.
Я закончил писать свой собственный код для проверки хеш-строки, а затем вырезал пары ключ / значение.
var uri = window.location.href;
var hashIndex = uri.search("#");
var filter = false;
if (hashIndex == -1) {
// Wasn't found
alert('No filters applied!');
// ...go with default query.
} else {
// # found. Get hashstring
var hashStr = uri.substring(hashIndex);
newStr = DecodeHashAsQueryString(hashStr);
var trStr = newStr.substring(newStr.indexOf("FilterField"));
var retStr = trStr.replace(/%3D|&/g,",").replace(/%2520/g," ");
retStr = retStr.replace(/FilterField[0-9]+,|FilterValue[0-9]+,/g,"")
var filtArray = retStr.split(','); // "MyField1","MyValue1",...
И применяю их к моему собственному запросу, который не включает ограничения, поэтому возвращаются все элементы, соответствующие критериям фильтра.
Если вы хотите обрабатывать поля, отличные от выбора текста opr, вам нужно сделать еще один шаг и получить тип поля, чтобы вы могли изменить тип значения запроса для каждого поля по мере необходимости.
person
Panoone
schedule
17.08.2014