or
function
createListViewEditor(container, options) {
var
list = _.find(_viewModel.model.LookupListCollection,
function
(x) {
return
(x.Id == options.model.StagingControlStageAttributeLookupCollectionId);
});
var
listItems = [];
_.forEach(list.LookupValues,
function
(x) {
listItems.push({ text: x.CustomName, value: x.Id });
});
var
lvSource =
new
kendo.data.DataSource({
data: listItems
});
var
listView = $(
'<div />'
)
.appendTo(container)
.kendoListView({
dataSource: lvSource,
selectable:
"multiple"
,
template: kendo.template($(
'#multiselecttemplate'
).html())
}).data(
"kendoListView"
);
var
indices = multiListSelectionHelper(listView.dataSource.data(), options.model.AttributeFieldValue.split(
','
));
listView.select(indices);
listView.bind(
"change"
,
function
(e) {
var
data = e.sender.dataSource.view(),
selected = $.map(e.sender.select(),
function
(item) {
return
data[$(item).index()].value;
});
options.model.AttributeFieldValue = selected.join();
});
}
function
multiListSelectionHelper(options, current) {
var
items = [];
_.forEach(options,
function
(x) {
_.forEach(current,
function
(y) {
if
(x.value == parseInt(y)) {
items.push(x);
}
});
});
return
items;
}