Я воспроизвожу функциональность, очень близкую к тому, что видно здесь. https://onabai.wordpress.com/2013/07/17/kendoui-multiselect-in-a-grid-yes-we-can/Kendo Grid Inline MultiSelect - Добавленные значения
У меня есть сетка Kendo с встроенным полем редактирования мультиселектора. У меня есть событие datasource.sync(), которое вышло на смену этого мультиселектора. Проблема, с которой я столкнулась, заключается в том, как данные упорядочиваются в пост-переменных.
Я использую FireBug в FireFox. Я могу установить функцию для просмотра значений в моем поле multiselect, подобных этому в событии sync().
console.log(this.value());
Это было бы для поля строки массива я назвал «RoleCode». Во всяком случае, журнал консоли отображает значения, как они должны, например
A, OU
Однако, когда я смотрю на сообщение вызова на мой контроллер и при параметрах, я вижу поле RoleCode дублируется, что почему мой контроллер не распознает подпись метода. Например, это то, что я вижу в FireBug ...
ID 123
Field1 TextFromField1
RoleCode[1][RoleCode] OU
RoleCode[] A
Любая идея, как я должен установить это так, почтовые параметры могут использоваться?
UPDATE
На данный момент я просто изменил функцию обновления, чтобы отправить значения MULTISELECT как разделенные запятыми строки. Я могу справиться с ними в контроллере. Мне не очень нравится эта настройка, но пока я не нахожу, как правильно отправлять опубликованные значения, это то, что я собираюсь.
update: {
url: "Home/GridUpdate",
type: "POST",
dataType: "json",
data: function() {
//Grid does not post multiselect array correctly, need to convert to a string
var rolesString = $("#gridRoleList").data("kendoMultiSelect").value().toString();
return { rolesString: rolesString };
},
complete: function (e) {
setTimeout(function() {
refreshGrid();
}, 300);
},
success: function (result) {
// notify the data source that the request succeeded
options.success(result);
},
error: function (result) {
// notify the data source that the request failed
options.error(result);
}
},
UPDATE 2
На самом деле это не очень хорошая идея, потому что, если я редактировать другое поле в сетке, я получаю ошибку JS, потому что MultiSelect не найден.
Спасибо. Я думаю, что это то, что мне нужно, но я не использую обертки MVC. Любая идея, как запустить данные с помощью этих функций в событии datasource.sync() или в функции обновления транспорта? – madvora
Вы можете использовать transport.read.функция данных для отправки дополнительных параметров из JS. Пожалуйста, обратитесь к документации Kendo UI здесь. http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-transport.read.data –