Получить текущий URL, включая параметры Jqgrid - PullRequest
5 голосов
/ 20 августа 2010

Я хочу получить полный URL-адрес последнего запроса к моей службе ajax, сделанного страницей JqGrid, включая записи на страницу, параметры поиска и т. Д.

Есть ли какой-либо метод или набор методов в API JqGridЯ могу использовать для достижения этого?

Ответы [ 3 ]

8 голосов
/ 20 августа 2010

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

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

В общем, хорошо известно, как будет создан 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. baseurl? _Search = true & rows = 10 & page = 1 & sidx = Name & sord = asc & searchField = Manufacture & searchString = Micro & searchOper = bw

Первый URL запрашивает загрузку первой страницы данных, 20 строк на страницу, без сортировки. Второй URL имеет сортировку по Name. Третий URL содержит фильтрацию данных (при простой поиск ) на основе фильтра "Manufacture начинается с Micro" и сортировки по Name. Результаты разбиты на 10 строк на страницу, и запрашивается первая страница.

В случае использования Расширенный поиск или Поиск по панели инструментов вместо Простой поиск URL будет выглядеть немного иначе. Все документировано под http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs. Если у вас есть дополнительные вопросы, я могу объяснить все более подробно.

Важно понимать, что параметры, используемые в URL, должны быть закодированы. Так что если вы хотите создать URL-адрес самостоятельно как

"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName

Не забывайте использовать функцию encodeURIComponent для кодирования myFirstName и myLastName. Вместо этого вы можете использовать jQuery.param (см. , почему мой поисковый код не работает в Internet Explorer ) или лучше использовать postData параметр jqGrid (см. jqgrid, не обновляющим данные при перезагрузке и Как фильтровать данные jqGrid, НЕ используя встроенное поле поиска / фильтра . В последнем случае символы '?' И '&' будут вставлены в URL, если это необходимо, и все данные значения будут закодированы с учетом encodeURIComponent.

5 голосов
/ 23 ноября 2010

У меня была похожая потребность, и я решил ее следующим образом:

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 следует заменить любыми дополнительными параметрами, которые вы хотите передать.

0 голосов
/ 17 мая 2011

Вот простой ответ. JQGrid добавится к строкам вашего запроса.

url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...