2011-12-20 4 views
0

я использую jqGrid плагин, чтобы показать некоторые данные (локально), такпоиск jqGrid на локальных данных

$("#myList").jqGrid({ 
     datatype : 'jsonstring', 
     datastr : getMyJson(), 
     colNames : ['ID', 'TITLE', 'PROFILE'], 
     colModel : [{ 
      name : 'Id', 
      index : 'Id', 
      width : 50, 
      sorttype : 'int' 
     }, { 
      name : 'Title', 
      index : 'Title', 
      width : 100 
     }, { 
      name : 'Profile', 
      index : 'Profile', 
      width : 80 
     }], 
     jsonReader : { 
      root : "rows", 
      page : "page", 
      total : "total", 
      records : "records", 
      repeatitems : true, 
      cell : "cell", 
      id : "id" 
     }, 
     autoencode : true, 
     ignoreCase : true, 
     autowidth : true, 
     cache : false, 
     shrinkToFit : false, 
     height : 500, 
     rowNum : 3000, 
     rowList : [10, 20, 30], 
     pager : jQuery('#pager1'), 
     viewrecords : true, 
     sortable : true, 
     loadonce : true, 
     gridview : true, 
     sortorder : "asc", 
     multiselect : true, 
     caption : "My List", 
     emptyrecords : 'No results' 
    }); 

$("#myList").jqGrid('filterToolbar', { 
    stringResult : true, 
    searchOnEnter : false 
}); 

Проблема о поиске. Когда я ввожу текст на любую панель инструментов для поиска, все данные строки исчезают. Я видел эту демонстрацию http://www.trirand.com/blog/jqgrid/jqgrid.html, и я не могу найти, что не так.

Есть ли что-то в моей сетке?

Заранее спасибо

EDIT:

function getMyJson() { 
    var json; 
    jQuery.ajaxSetup({ 
     async : false 
    }); 
    $.post(BIN_ROOT + "getdata.php", function(data, textStatus) { 
     json = data.Mytable; 
    }, "json"); 
    jQuery.ajaxSetup({ 
     async : true 
    }); 

    return json; 
} 

Json имеет следующий формат

{ 
    "errorCode": 0, 
    "errorDesc": "No Error", 
    "MyTable": { 
     "page": 1, 
     "total": 1, 
     "records": 12, 
     "rows": [{ 
      "id": "41", 
      "cell": ["41", "Title1", "User"] 
     }, { 
      "id": "30", 
      "cell": ["30", "Title1", "Admin"] 
     }, (...) 
    } 
} 
+1

Я полагаю, что причиной вашей проблемы могут быть данные из 'getMyJson()', которые вы используете для заполнения сетки. Не могли бы вы добавить тестовые данные в текст вашего вопроса? – Oleg

ответ

1

Извините, но я не вижу никаких проблем в сети, которые вы публикуемую. Посмотрите на the demo.

Одна вещь, которую я могу вам порекомендовать. Вам лучше использовать datatype: 'json' и mtype: 'POST' для получения данных непосредственно с сервера, без необходимости делать отдельный звонок $.post. Вам необходимо просто использовать следующие настройки:

$("#myList").jqGrid({ 
    url: BIN_ROOT + "getdata.php", 
    datatype: 'json', 
    mtype: 'POST', 
    jsonReader : { 
     root : "MyTable.rows", 
     page : "MyTable.page", 
     total : "MyTable.total", 
     records : "MyTable.records" 
    }, 
    //... other parameter which you use 
}); 

См. the next demo.

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