2010-04-24 5 views
1

Я использую jqGrid для решения моей таблицы данных. Ниже приведены коды конфигурации.jqGrid не загружает данные

$(function() { 
    $("#submitInput").click(function() { 
     alert("I am called...") 
     jQuery("#list").jqGrid({ 
      datatype: "json", 
      url: "http://localhost:1201/admin/someURL.htm", 
      mtype:"POST", 
      height: "auto", 
      colNames:["Column 1", "Column 2", "Column 3", "Column 4", "Column 5"], 
      colModel:[ 
       {name:"col1", index:"col1", sortable:true, resizable:false}, 
       {name:"col2", index:"col2", sortable:true}, 
       {name:"col3", index:"col3", sortable:false, resizable:false}, 
       {name:"col4", index:"col4", sortable:true, resizable:false}, 
       {name:"col5", index:"col5", sortable:true, resizable:false} 
      ], 
      sortname:'col1', 
      sortorder:'asc', 
      pager: $('#pager'), 
      rowNum:10, 
      viewrecords: true, 
      rowList:[10,20,30], 
      caption: 'Some Grid Values', 
      jsonReader: { 
       root: "responseData", 
       page: "currentPage", 
       total: "totalPages", 
       records: "totalFetchedRecords", 
       repeatitems: true, 
       cell: "rowContent", 
       id: "rowID" 
      }, 
      gridComplete: function() { 
       alert("Loading done..."); 
      } 
     }); 
    }); 
}); 

Мои данные JSON приходит в следующем формате:

"currentPage":"1","responseData":[ 
    {"rowContent":["Col1_Val_000001","Col2_Val_1","Col3_Val_1","Col4_Val_1","Col5_Val_1"],"rowID":"Col1_Val_000001"}, 
    {"rowContent":["Col1_Val_000002","Col2_Val_2","Col3_Val_2","Col4_Val_2","Col5_Val_2"],"rowID":"Col1_Val_000002"} 
], "totalFetchedRecords":"50","totalPages":"5"} 

В моем HTML, есть кнопка с идентификатором «submitInput» и стол с «списком» ид.

Как-то эти данные не загружаются в сетку. Какова причина?

ответ

0

Возможно, вы не должны создавать jqGrid внутри нажмите ручка. Вы должны сделать это один раз за пределами нажмите ручку и позвоните jQuery("list").trigger('reloadGrid') внутри обработчика. Если в начале данные не должны быть загружены в сетку, вы можете использовать datatype: 'local' начало. Если это необходимо, вы можете сделать div с jqGrid, иногда доступным и иногда невидимым с использованием hide() и show() Функции jQuery. Внутри обработчика click вы можете изменить datatype на 'json' по отношению к setGridParam(), а затем позвонить trigger('reloadGrid'). Во многих ситуациях вы также меняете некоторые параметры URL перед вызовом trigger('reloadGrid') (см. Should one replace the usage addJSONData of jqGrid to the usage of setGridParam(), and trigger('reloadGrid')?), но, вероятно, вам это не нужно в вашем случае.