jsGrid не загружается Spring-boot json - PullRequest
0 голосов
/ 22 мая 2018

Restfull API возвращает JSON в порядке.Попытка использовать данные json для заполнения jsGrid на html-странице.Должно быть, что-то не так, потому что все примеры, которые я нашел, провалились.То, что я вижу, - это имена столбцов с надписью «Не найдено», записанные в виде единственной строки.

Любые идеи?

Это все еще дает мне «Не найдено»:

    controller: {
            loadData: function(filter) {
            return {
                      data: [{"Name":"Edmund","Age": "25"},
                             {"Name":"Edmund","Age": "25"}
                            ],
                      itemsCount: 2
                  };
            }
        },

    fields: [
        { name: "Name", type: "text", width: 150 },
        { name: "Age", type: "text", width: 50 }
    ]
});

1 Ответ

0 голосов
/ 22 мая 2018

jsGrid ожидает данные в следующем формате.

{"data":[...],"itemsCount":<data count>}

Изначально у меня была такая же проблема.Итак, я сначала попытался отправить жестко запрограммированную строку из контроллера, как показано ниже:

String responseStr = "{\"data\":[{\"fld_1\": \"val1\",\"fld_2\": \"val2\"},{\"fld_1\": \"val3\",\"fld_2\": \"val4\"],\"itemsCount\":2}";

Это сработало.Теперь мы используем некоторый объект данных, как показано ниже

public class MyDataDO {
    private List<Map<String, Object>> data;
    private int itemsCount;
    //setter/getter
}

Кроме того, можете ли вы убедиться, что для autoload установлено правильное значение?

РЕДАКТИРОВАТЬ:

вы можете сделать это, как показано ниже

...
controller: {
                loadData: function(filter) {
                return {
                          data: [{"field_1":"val1","field_2": "val2"},
                                 {"field_1":"val3","field_2": "val4"}
                                ],
                          itemsCount: 2
                      };
                }
            }

Следующая страница выглядит нормально.Все файлы js и css взяты из дистрибутива, поставляемого с jsgrid.

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="demos.css" />
    <link rel="stylesheet" type="text/css" href="../css/jsgrid.css" />
    <link rel="stylesheet" type="text/css" href="../css/theme.css" />
    <script src="../external/jquery/jquery-1.8.3.js"></script>
    <script src="../src/jsgrid.core.js"></script>
    <script src="../src/jsgrid.load-indicator.js"></script>
    <script src="../src/jsgrid.load-strategies.js"></script>
    <script src="../src/jsgrid.sort-strategies.js"></script>
    <script src="../src/jsgrid.field.js"></script>
</head>
<body>
    <div id="jsGrid"></div>
    <script>
        $(function() {
            $("#jsGrid").jsGrid({
                pageLoading : true,
                autoload: true,
                controller: {
                    loadData: function(filter) {
                        return {
                            data: [
                                    {"Name":"Edmund","Age": "25"},
                                    {"Name":"Edmund","Age": "25"}
                            ],
                            itemsCount: 2
                        };
                    },

                  },
                  fields: [
                    { name: "Name", type: "text", width: 100 },
                    { name: "Age", type: "text", width:150}
                ]

            });
        });
    </script>
</body>
</html>
...