2010-07-20 4 views
0

У меня есть страница visualforce, и я использую jqgrid для отображения данных на этой странице. URL-адрес, который указывает jqgrid, является страницей visualforce (https://test.visual.force.com/apex/GridResults), которая выводит только данные JSON. На этой странице нет информации о заголовке или html.Заполните jqgrid с данными из visualforce page

Проблема в том, что когда я запускаю эту страницу, сетка отображает имена столбцов, но не данные. Когда я запускаю URL-адрес, он выводит данные JSON. Я вставил ниже кода.

jQuery("#list").jqGrid({ 
     url:"https://test.visual.force.com/apex/GridResults", 
     datatype: "json", 
     colNames: [{!fieldNames}], -- property in controller which outputs fieldnames 
     colModel: [{!colModel}], -- property in controller which outputs column definition 
     rowNum: 10, 
     rowTotal:10, 
     rowList: [20, 40, 60], 
     loadonce:true, 
     mtype:"GET", 
     gridView:true, 
     pager: '#pager', 
     sortname: 'Record ID', 
     sortorder: "desc", 
     width: 1200, 
     height: 400, 
     caption: "Accounts" 
    }); 
    jQuery("#list").jqGrid('navGrid', "#pager", { edit: true, add: true, del: false }) 
    }; 

Любые идеи о том, почему данные со страницы не используются jqgrid? Помощь очень ценится.

+0

Можете ли вы попробовать отладить javascript (например, используя плагин Firefox Firebug) или для IE, просто помещающего оператор «отладчик» где-то в javascript)? С Firebug вы должны иметь возможность проверять заголовки (если есть) и определять, действительно ли данные поступают. Также - как jqgrid обрабатывает типы MIME? Может быть, ему нужны «application/json» и выходы Salesforce «text/html»? – eyescream

+0

Еще один: вы уверены, что вам не нужен «jsonReader» или что-то подобное? Ознакомьтесь с примерами и предупреждениями по адресу http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data, соответствует ли ваш JSON требуемый формат? – eyescream

+0

благодарит за ваш ответ eyecream. Хорошая точка, я не проверял тип mime. На данный момент я сделал обходной путь, вызвав контроллер visualforce, используя apex: actionFunction. когда данные возвращаются, я строю массив и передаю его в jqgrid! На данный момент работает нормально. – jack

ответ

Смежные вопросы