Получить текущий url, включая параметры Jqgrid



Я ищу, чтобы получить полный url-адрес последнего запроса к моему сервису ajax, сделанного jqgridincluding page, records per page, search params и т. д.



Существует ли какой-либо метод или набор методов в api JqGrid, которые я могу использовать для достижения этой цели?

786   3  

3 ответов:

JqGrid не сохраняет где-то полный URL-адрес, добавленный со всеми параметрами. Так что это не possibl e в архиве API jqGrid.

Для просмотра полного URL вы можете использовать Firebug, скрипач или другой близкий инструмент.

Вообще хорошо известно, как будет построен url. Насколько я понимаю косвенно вы хотите использовать HTTP GET (mtype: "GET"). Объясняю конструкцию URL-адреса в случае HTTP-метода GET.

Полный URL запросов GET воля, построенная из:

  • url параметр jqGrid
  • postData параметр jqGrid
  • некоторые дополнительные пареметры, которые зависят от используемого действия (первая загрузка сетки, поиск данных, обрезка и т. д.). Имена этих дополнительных параметров могут быть изменены параметром prmNames jqGrid (см. 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:

  1. автоопределения?Вредоносных процессов=ложь&НД=1250348761396&строк=20&Страница=1&sidx по=&Сорд=акц
  2. автоопределения?Вредоносных процессов=ложь&НД=1250348761396&строк=20&Страница=1&sidx по=Имя&Сорд=акц
  3. автоопределения?Вредоносных процессов=истина&рядов=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 (см. почему мой поисковый код не работает в интернете проводник ) или лучше использовать параметр postData jqGrid (см. 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

    Ничего не найдено.