Поправил. Не понимаю браузеры, которым жалко отдать событие load на загрузку iframe.
Насчет ajax'а. Лучше всего, если будет возвращаться кусочек html'ки, собранный по тем же правилам, что и для обычной страницы.
А именно, результат работы функции render внутри тегов <script>.
Еще в старой версии по умолчанию использовалось добавление элементов на страницу через document.write.
Можно проверить по переменной $render_html, которая НЕ должна иметь значение 'js'.
Еще может быть такая проблема, что id самого грида - не уникальное. В этом случае следует генерировать суффикс.
В старой версии это делалось через аргумент $suffix функции render.
В более новых - через функцию renderGridSuffix.
Обнаружился момент, связанный с кодировками
Помню, раньше была подобная проблема. Причина её заключалась в том, что запрос на экспорт происходит через iframe.
При этом не появляется заголовок $_SERVER['HTTP_X_REQUESTED_WITH']. И поэтому не происходит конвертирования входящих данных из utf-8 в win-1251.
Попробуйте поискать строку:
PHP:
if($this->loader->get('encoding') != 'utf-8' and isset($_SERVER['HTTP_X_REQUESTED_WITH']))
И заменить на:
PHP:
if($this->loader->get('encoding') != 'utf-8')
Еще просьба - прикрутить в одном из примеров к колонке дат поиск по дате с контролом date picker.
Вот тут вроде было:
http://jqgrid-php.net/examples/?render=jqPmdb
Кодом примерно так:
PHP:
'searchoptions' => array('dataInit' => new jqGrid_Data_Raw("function(el){ $(el).datepicker({dateFormat: 'yy-mm-dd'})}"));
Здесь очень удобно какую-нибудь обертку сделать, чтобы она генерила datepicker с нужными вам форматами и событиями.