2010-08-20 5 views
5

Я ищу, чтобы получить полный URL-адрес последнего запроса на мой АЯКС службы, сделанные JqGridincluding странице записей на странице, поиск Титулы и т.д.Получить текущий URL, включая параметры Jqgrid

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

ответ

8

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

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

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

Полный URL запросов GET будет построен из:

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

Ниже вы найдете некоторые типичные URLs:?

  1. BaseUrl _search = ложь & й = 1250348761396 & строк = 20 & страница = 1 & sidx = & Sord = по возрастанию
  2. BaseUrl _search = false & nd = 1250348761396 & rows = 20 & страница = 1 & sidx = Название & sord = asc
  3. BaseUrl? _search = верно & строк = 10 & страница = 1 & sidx = Имя & Sord = возрастанию & searchField = Производство & SearchString = Micro & searchOper = м.т.

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

В случае использования Advanced Searching или Toolbar Searching вместо Simple Searching URL будет выглядеть немного иначе. Everithing документированы unter http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs.Если у вас появятся дополнительные вопросы, я объясню все подробности.

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

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

вы должны не забывать использовать encodeURIComponent функцию для кодирования myFirstName и myLastName. Вместо этого вы можете использовать jQuery.param (см. why my search code does not work on internet explorer) или лучше использовать параметр jqGrid jqgrid not updating data on reload и How to filter the jqGrid data NOT using the built in search/filter box. В последнем случае символы «?» И «&» будут вставлены в URL-адрес, если это необходимо, и все данные значения будут закодированы в отношении encodeURIComponent

5

у меня была подобная необходимость и решить ее с этим:.

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

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

url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(), 
Смежные вопросы