Кендо UI сетки уничтожить и команду обновление не запустить событие onclick функции


У меня есть эта сетка Kendo UI. Он считывает и заполняет сетку. Но проблема, с которой я сталкиваюсь, заключается в том, что ни кнопка Обновить, ни кнопка Удалить не отправляет запрос POST.

Кнопка Сохранить ничего не делает. Кнопка Удалить дает мне окно подтверждения оповещения, затем он удаляет его в сетке, но не запрос.

<kendo:grid name="grid" pageable="true" groupable="false" editable="true" sortable="true" filterable="true" height="300" >
    <kendo:grid-columns>
        <kendo:grid-column title="Account" field="name"/>
        <kendo:grid-column width="250">
            <kendo:grid-column-command>
                <kendo:grid-column-commandItem name="showAccount" text="Visa konto" click="showAccount"/>
                <kendo:grid-column-commandItem name="ShowAccountSummary" text="Sammanställning" click="showAccountSummary"/>
            </kendo:grid-column-command>
        </kendo:grid-column>
        <kendo:grid-column title="&nbsp;" >
            <kendo:grid-column-command>
                <kendo:grid-column-commandItem name="save" />
                <kendo:grid-column-commandItem name="destroy" />
            </kendo:grid-column-command>
        </kendo:grid-column>
    </kendo:grid-columns>
    <kendo:dataSource pageSize="10" batch="false">
        <kendo:dataSource-schema>
            <kendo:dataSource-schema-model id="id">
                <kendo:dataSource-schema-model-fields>
                    <kendo:dataSource-schema-model-field name="id" type="number"/>
                    <kendo:dataSource-schema-model-field name="user_id" type="number"/>
                    <kendo:dataSource-schema-model-field name="name" type="string"/>
                </kendo:dataSource-schema-model-fields>
            </kendo:dataSource-schema-model>
        </kendo:dataSource-schema>
        <kendo:dataSource-transport>
            <kendo:dataSource-transport-read url="${transportReadUrl}" dataType="json" type="GET" contentType="application/json" />
            <kendo:dataSource-transport-update url="${updateAccountUrl}" dataType="json" type="POST" contentType="application/json" />
            <kendo:dataSource-transport-destroy url="${destroyUrl}" dataType="json" type="POST" contentType="application/json" />
        </kendo:dataSource-transport>
    </kendo:dataSource>
</kendo:grid>
3 3

3 ответа:

Я решил эту проблему. Источник данных должен иметь атрибут "autoSync= 'true' "

Из руководства по кэндо

AutoSync Boolean (по умолчанию: false)

Включает (true) или отключает (false) автоматический вызов метод sync () для каждого внесенного изменения

Аналогичная ситуация, но я отключил автосинхронизацию, так как мой сеточный источник данных считывается после загрузки страницы. Реализован javascript для синхронизации при изменении или удалении, когда autosync=false.

function gridChange(e) {
    if (e.action == "itemchange") {
        e.sender.sync();
    };
    if (e.action == "remove") {
        e.sender.sync();
    }
}

Так что я предполагаю, что ваши crUD URL-адреса не попали. За этими двумя операциями стоит сигнатура метода, которая не соответствует тому, что хочет кэндо. Это почти все, что я могу сделать с тем, что вы разместили здесь. Надеюсь, это поможет. Когда он заработает, не забудьте вернуть данные обратно в сетку при обновлении, иначе вы получите забавное поведение.