Прикрепить нажатие кнопки к таблице данных webix

У меня есть код ниже, где я хочу добавить запись в таблицу данных webix. Я новичок в JS, поэтому не уверен в правильном определении, чтобы убедиться, что область действия переменной действительна.

В основном у меня есть пейджер и данные, которые отлично работают:

    webix.ready(function(){

        webix.ui({
            id: "pagerA",
            view: "pager",
            template:"{common.prev()} {common.pages()} {common.next()}",
            container: "page_section",
            size: 15,
            group: 5
        });

        webix.ui({
            container:"gasforecast",
            rows: [
            {type: "header", template: "Gas Forecast"},
            gasgrid = {
            view:"datatable",
            editable: true,
            navigation: true,
            pager: "pagerA",
            columns:[
                { id:"PKey",            header:"",          hidden:true},
                { id:"SiteName",        header:"Site",      width:250, sort:"string"},
                { id:"PercentageChange",header:"% Change",  width:100, editor: "text", sort:"int"},
                { id:"kWChange",        header:"kW Change", width:100, editor: "text", sort:"int"}
            ],
            autoheight:true,
            autowidth:true,
            select:"row",

            save: "data/gasforecastdata_save.php",
            url: "data/gasforecastdata.php"
        }]});
    });

Теперь я хочу иметь кнопку, которая при нажатии добавляет строку в таблицу данных, поэтому я добавляю:

        cmdAddRow = webix.ui({
            container:"addbutton",
            view:"button",
            label: "Add Site",
            click: function() {
                var data = {"SiteName": "X", "PercentageChange": 1, "kWChange": 0};
                gasgrid.add(data);
            }

        });

Однако при нажатии кнопки выдается ошибка «Uncaught TypeError: gasgrid.add не является функцией».

Я попытался добавить свойство id: в таблицу данных и сослаться на него, но все равно получаю сообщение об ошибке. Не знаете, что делать?

Спасибо

Гэри


person garyk1968    schedule 08.09.2015    source источник


Ответы (1)


Да, использование ID - правильный подход.

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

{ type: "header", template: "Gas Forecast"},
{ view:"datatable", id:"gasgrid", editable: true

Позже вы сможете ссылаться на таблицу данных и вызывать ее API.

webix.ui({
    container:"addbutton",
    view:"button",
    label: "Add Site",
    click: function() {
       var data = {"SiteName": "X", "PercentageChange": 1, "kWChange": 0};
       $$("gasgrid").add(data);
    }
})
person Aquatic    schedule 09.09.2015