YUI Datatable - «Ошибка данных». - PullRequest
2 голосов
/ 02 января 2011

Я пытаюсь сделать данные с использованием YUI с данными, возвращенными JSON.

Включены данные, возвращаемые json, и отображаемые данные страницы.

JSONДанные:

[{"supplier_id":"127","name":"Adams Farms","description":"","ofarm":"1","active":"1"},{"supplier_id":"141","name":"Barriger Farms","description":"","ofarm":"1","active":"1"}]

Javascript для YUI:

<script type="text/javascript">
YAHOO.util.Event.addListener(window, "load", function() {
    YAHOO.example.JSON = function() {
        var myColumnDefs = [
            {key:"supplier_id", label:"ID"},
            {key:"name", label:"Name"},
            {key:"description", label:"Notes"},
            {key:"ofarm", label:"Ofarm"},
            {key:"active", label:"Active"}
        ];

        var myDataSource = new YAHOO.util.DataSource("ajax/select/supplier");
        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
        myDataSource.responseSchema = {
            fields: ["supplier_id","name","description","ofarm","active"]
        };

        var myDataTable = new YAHOO.widget.DataTable("json", myColumnDefs,
                myDataSource);

        return {
            oDS: myDataSource,
            oDT: myDataTable
        };
    }();
});
</script>

Просмотр страницы:

Тест YUI (заголовок)

В этом примере таблица DataTable заполняется данными. (вводный текст)

ID - Имя - Примечания - Ofarm - Актив (заголовки столбцов)

Ошибка данных. (возвращенные данные)

Ответы [ 2 ]

2 голосов
/ 09 января 2011

По данным страницы YUI dataSource , источник данных YUI ожидает объект JavaScript, а не массив объектов. И при использовании JSON use должен установить resultsList в свойстве responseSchema. Что-то как ( Примечание свойство dataSourceSettings.responseSchema.fields)

(function() {
    var YdataTable  = YAHOO.widget.DataTable,
        YdataSource = YAHOO.util.DataSource;

    var settings = {
        container:"<DATATABLE_CONTAINER_GOES_HERE>",
        source:"<URL_TO_RETRIEVE_YOUR_DATA>",
        columnSettings:[
            {key:"supplier_id", label:"ID"},
            {key:"name", label:"Name"},
            {key:"description", label:"Notes"},
            {key:"ofarm", label:"Ofarm"},
            {key:"active", label:"Active"}
        ],
        dataSourceSettings:{
            responseType:YdataSource.TYPE_JSON,
            responseSchema:{
                resultsList:"<DOT_NOTATION_LOCATION_TO_RESULTS>",
                fields:[
                    {key:"supplier_id"},
                    {key:"name"},
                    {key:"description"},
                    {key:"ofarm"},
                    {key:"active"}
                ]
            }
        },
        dataTableSettings:{
            initialLoad:false
        }
    }

    var dataTable = new YdataTable(
                    settings.container, 
                    settings.columnSettings, 
                    new YdataSource(
                    settings.source, 
                    settings.dataSourceSettings), 
                    settings.dataTableSettings);
})();
1 голос
/ 16 мая 2011

В качестве примечания я обнаружил эту страницу при поиске причины «Ошибка данных» в датируемой таблице YUI и в конце концов обнаружил, что мне не хватает ссылки на скрипт /build/connection/connection-min.js в моя веб-страница.

...