Во-первых ... вот что я использую.
JQuery 1.4.4
JQuery-UI 1.8.11
JqGrid 3.8.2
Вот мои включения в HTML
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
<script type="text/javascript" src="/resources/default/scripts/jquery/jqGrid/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="/resources/default/scripts/jquery/jqGrid/jquery.jqGrid.3.8.2.min.js"></script>
Все эти ссылки на скрипты работают правильно.
Вот мое определение Grid:
$('#adminPermissionsGrid').jqGrid({
url:'/admin/permission/get-permissions',
mtype: 'GET',
datatype: 'json',
jsonReader: {
id: 'id',
repeatitems: false
},
colModel: adminPermissionsColumnModel,
pager: '#adminPermissionsPager',
rowNum: 50,
altRows: true,
hidegrid: false,
sortname: 'resource',
autowidth: true,
height: 450,
gridview: true,
viewrecords: true,
caption: translate.admin_table_permission_caption,
onSelectRow: function(rowId, status) {
populatePermissionForm(rowId);
}
})
.navGrid('#adminPermissionsPager',{add:false, edit:false, del:false, search:false, refresh:true});
А вот "populatePermissionForm ()"
function populatePermissionForm(rowId)
{
//TODO : WTF? Why can't I use jqgrid functions here?
var rowData = $('#adminPermissionsGrid').jqGrid('getRowData', rowId);
...
}
Итак, вот моя проблема. Я загружаю сетку с помощью $ (document) .ready (). Сетка работает, как и ожидалось, содержит около 20 строк данных. Когда я нажимаю на одну из строк, я получаю следующую ошибку в firebug:
$("#adminPermissionsGrid").jqGrid is not a function
Сообщается, что эта строка является виновником:
var rowData = $ ('# adminPermissionsGrid'). JqGrid ('getRowData', rowId);
Я проверил $ ("# adminPermissionsGrid") с помощью Firebug, и он все еще выглядит так, как будто к нему присоединен объект сетки. Я часами пытался найти ответ на этот вопрос. Кажется, что после начальной загрузки я не могу использовать какие-либо методы сетки. У меня есть HACKY обходной путь, который работает с DOM-сеткой, но я не хочу этого делать ...
Есть мысли?