Попытка загрузить простой json в jQGrid

0

ok, поэтому Im jsut пытается загрузить некоторые простые json-данные в html-таблицу, используя jqgrid. Я видел, что некоторые сообщения упоминают использование опции jsonreader, но я не могу найти документацию о том, как ее правильно реализовать. Я думал, что это будет очень просто! anywahy страница находится по адресу http://thethunderdome.hfbsite.com/economy/test.htm

Код js:

    $(function(){
    var pricesUrl = "/economy/prices3.txt"

    jQuery("#pricetable").jqGrid({
        url:pricesUrl,
        datatype: "json",
        colNames:['Item Name','Price', 'Trade Status'],
        colModel:[
            {name:'Name', width:100},
            {name:'Price', width:90},
            {name:'Trade',width:100},       
        ],

        rowNum:10,
        rowList:[10,20,30],
        pager: '#pager2',
        sortname: 'Name',
        viewrecords: true,
        sortorder: "asc",
        caption:"JSON Example"
    });

});

json данные:

    [
   {
      "Price":"5",
      "Name":"Wood",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Sulfur Ore",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Raw Chicken Breast",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Cloth",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Metal Ore",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Stones",
      "Trade":"all"
   },
   {
      "Price":"5",
      "Name":"Animal Fat",
      "Trade":"all"
   },
   {
      "Price":"12500",
      "Name":"M4",
      "Trade":"all"
   },
      "Price":"9000",
      "Name":"Shotgun",
      "Trade":"all"
   },
      "Price":"500",
      "Name":"Small Medkit",
      "Trade":"all"
   },
   }
      "Price":"1000",
      "Name":"Large Medkit",
      "Trade":"all"
   },
]
Теги:
jqgrid

1 ответ

2
Лучший ответ

Данные, которые вы опубликовали, являются неправильными данными JSON. Если вы посмотрите на последнюю часть своих данных, вы увидите

[
   ...
   {
      "Price":"12500",
      "Name":"M4",
      "Trade":"all"
   },                       ---- where {
      "Price":"9000",
      "Name":"Shotgun",
      "Trade":"all"
   },                       ---- where {
      "Price":"500",
      "Name":"Small Medkit",
      "Trade":"all"
   },
   }                        ---- why } ??? one need {
      "Price":"1000",
      "Name":"Large Medkit",
      "Trade":"all"
   },                       ---- why , is here ???
]

Я рекомендую вам проверить данные JSON на http://www.jsonlint.org/.

После того, как вы исправите данные, и они будут загружены правильно, я бы рекомендовал вам добавить loadonce: true потому что вы, вероятно, захотите сразу загрузить все данные и не выполнять пейджинг на стороне сервера, сортировку и фильтрацию/поиск. Другие варианты gridview: true и autoencode: true также рекомендуются.

  • 0
    arghhh! Это было так очевидно! Благодарю вас!
  • 0
    @DanielWard: Добро пожаловать! Кроме того, я бы порекомендовал вам включить loadError обратного вызова loadError во все ваши jqGrids. Это может сэкономить много вашего времени. Смотрите ответ для более подробной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню