Получить текущий url, включая параметры Jqgrid
Я ищу, чтобы получить полный url-адрес последнего запроса к моему сервису ajax, сделанного jqgridincluding page, records per page, search params и т. д.
Существует ли какой-либо метод или набор методов в api JqGrid, которые я могу использовать для достижения этой цели?
3 ответов:
JqGrid не сохраняет где-то полный URL-адрес, добавленный со всеми параметрами. Так что это не possibl e в архиве API jqGrid.
Для просмотра полного URL вы можете использовать Firebug, скрипач или другой близкий инструмент.
Вообще хорошо известно, как будет построен url. Насколько я понимаю косвенно вы хотите использовать HTTP GET (
mtype: "GET"). Объясняю конструкцию URL-адреса в случае HTTP-метода GET.Полный URL запросов GET воля, построенная из:
urlпараметр jqGridpostDataпараметр jqGrid- некоторые дополнительные пареметры, которые зависят от используемого действия (первая загрузка сетки, поиск данных, обрезка и т. д.). Имена этих дополнительных параметров могут быть изменены параметром
prmNamesjqGrid (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options#how_to_overwrite_global_options)например, если вы определяетеprmNames: {sort: "searchIndex", order: "searchDirection", search: null, nd: null}, то параметрыsidxиsordбудут переименованы вsearchIndexиsearchDirection. Параметры_searchиndотправлять не будут.Ниже вы найдете некоторые типичные url:
- автоопределения?Вредоносных процессов=ложь&НД=1250348761396&строк=20&Страница=1&sidx по=&Сорд=акц
- автоопределения?Вредоносных процессов=ложь&НД=1250348761396&строк=20&Страница=1&sidx по=Имя&Сорд=акц
- автоопределения?Вредоносных процессов=истина&рядов=10&Страница=1&sidx по=Имя&Сорд=АСЦ&поиск=производство &searchString=микро&searchOper=Вт
Первый url запрашивает загрузку первого страница данных, 20 строк на странице, никакой сортировки. Второй url имеет сортировку по
Name. Третий url содержит фильтрацию данных (с простым поиском ) на основе фильтра "Manufactureначинается сMicro" и сортировку поName. Результаты выводятся по 10 строкам на страницу, и запрашивается первая страница.В случае использования расширенного поиска или поиска по панели инструментов вместо простого поиска url будет выглядеть немного иначе. Все задокументировано унтер http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs . Если у вас есть дополнительные вопросы, я могу объяснить все более подробно.
Важно понимать, что параметры, используемые в URL, должны быть закодированы. Так что если вы хотите cunstruct url yourself like
"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastNameНе забудьте использовать функцию
encodeURIComponentдля кодированияmyFirstNameиmyLastName. Вместо этого вы можете использоватьjQuery.param(см. почему мой поисковый код не работает в интернете проводник ) или лучше использовать параметрpostDatajqGrid (см. jqgrid, не обновляющий данные при перезагрузке и как фильтровать данные jqGrid, не используя встроенное поле поиска/фильтра. В последнем случае символы '?'и' & ' будут вставлены в url, если это необходимо, и все значения данных будут закодированы относительноencodeURIComponent.
У меня была аналогичная потребность, и я решил ее следующим образом:
var myUrl = jQuery("#grid").jqGrid('getGridParam', 'url'); myUrl += "?myextraparam=something"; var postData = jQuery("#grid").jqGrid('getGridParam', 'postData'); $.each(postData, function(key, value) { myUrl += "&"+key+"="+encodeURIComponent(value); }); //alert(myUrl);Для меня, выше получил все, что мне нужно, включая элементы из панели инструментов поиска, если используется.
?myextraparam=somethingследует заменить любыми дополнительными параметрами, которые вы хотите передать.
Вот простой ответ. JQGrid добавит к вашим строкам запроса.
url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(),
Comments