Кендо 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=" " >
<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 ответа:
Я решил эту проблему. Источник данных должен иметь атрибут "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-адреса не попали. За этими двумя операциями стоит сигнатура метода, которая не соответствует тому, что хочет кэндо. Это почти все, что я могу сделать с тем, что вы разместили здесь. Надеюсь, это поможет. Когда он заработает, не забудьте вернуть данные обратно в сетку при обновлении, иначе вы получите забавное поведение.