jqGrid не отображается, когда html-страница, содержащая сетку, загружается через вызов ajax - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть HTML-страница (editor.php), которая содержит много HTML-страниц в виде вкладок JQuery.Каждая вкладка загружается через ajax.

На одной из вкладок (cooking.php) встроена jqgrid.Когда я загружаю печную печь.Тем не менее, если см. Страницу cook.php отдельно, я могу просмотреть jqgrid.

Страница сетки выглядит следующим образом.

1 Ответ

1 голос
/ 10 сентября 2011

Вы неправильно понимаете, как работает метод $.ajax с $("#oven").html(data) внутри success. Таким образом, вы не можете загрузить только новую HTML-страницу в соответствии с новым значением для windows.location. Если вы загрузите страницу за $.ajax, ни один из сценариев не будет запущен по крайней мере из-за причины безопасности . Более того, вы не можете просто установить всю страницу HTML включительно <html>, <head> <body> и так далее внутри другой части страницы HTML. Таким образом, в отношении $.ajax метода вы можете загрузить только фрагмент HTML, а не всю страницу HTML .

Так что вам следует переделать вашу программу и не использовать $.ajax таким образом.

Еще одно замечание. Если вы даже видели что-то при загрузке oven.php , на странице много ошибок . Вот только самые важные:

  • Ваша страница должна начинаться с <!DOCUMENT html ...> оператора. Без оператора у вас есть HTML-страница в режиме quirks , который не поддерживается пользовательским интерфейсом jQuery или jqGrid. Вы должны включить строку вроде <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> (см. здесь ) или HTML5 <!DOCTYPE html>
  • Нельзя включать одну и ту же реализацию одних и тех же функций или объектов более одного раза. Сначала вы вводите код jquery-1.6.2.min.js, затем jquery-1.4.2.min.js. Это тяжелая ошибка. Вы включаете код jqGrid 3 раза (!!! ???) . См. jquery.jqGrid.min.js, затем grid.base.js до grid.jqueryui.js, а затем еще раз jquery.jqGrid.min.js. Вы не можете сделать это!

Остальной код, который определяет jqGrid, содержит некоторые ошибки и неоптимальный код (очень старый стиль кода).

  • Вы должны заменить строку var lastsel2 = на var lastsel2;, которая должна просто определить lastsel2 значением undefined.
  • использование addRowData после определение сетки не подходит. Это очень старый стиль. Гораздо лучше будет переместить определение mydata2 до создания jqGrid и использовать дополнительные параметры data: mydata2 и gridview: true в сетке.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...