Я использую kendo multiSelect, где я пытаюсь установить атрибут, чтобы я мог использовать его для сравнения в моей функции formDirty.
Это моя часть viewmodel
public IEnumerable<string> AssignedStores
{
get
{
List<string> stores = !string.IsNullOrEmpty(SelectedStores) && SelectedStores.Split(',').Count() >= 1 ? SelectedStores.Split(',').ToList() : new List<string>();
return stores;
}
set
{
SelectedStores = string.Join(",", value);
}
}
Это мой кендо multiSelect, здесь я пытаюсь установить data_original в Model.AssignedStores в HtmlAttribute, чтобы я мог использовать его для сравнения со значением этого поля ввода.
<div class="editor-field">
@(Html.Kendo().MultiSelectFor(m => m.AssignedStores)
.DataTextField("Text")
.DataValueField("Value")
.BindTo(Model.Stores)
.Value(Model.AssignedStores)
.HtmlAttributes(new { data_original = Model.AssignedStores })
.ItemTemplate("<input type='checkbox' style='margin-right: 5px;'/>#:data.Text#")
.Events(e => e.Change("toggleStoresCheckbox").DataBound("toggleStoresCheckbox"))
.TagTemplate("#if(data.values.length==1){# #:data.dataItems[0].Text# #}else{# #:data.values.length# Stores Selected #}#")
)
</div>
Это моя функция для проверки грязная форма, где я сравниваю data_original и текущее значение
function isFormDirty(form) {
$(form).attr('data-formdirty', false);
$(form).find('[data-original]').each(function () {
if (!$(this).is(':checkbox') && $(this).data('original') != $(this).val()) {
$(form).attr('data-formdirty', true);
}
if ($(this).is(':checkbox') && $(this).data('original') != $(this).is(':checked')) {
$(form).attr('data-formdirty', true);
}
});
return $(form).attr('data-formdirty') == 'true';
}
значение $ (this) .val () находится в массиве как this , и я получаю значение для $ (this) .data ('original') as 'System.Collections.Generic.List
1 [System.String] '`
Как получить значение data_Original в желаемом формате, как показано на рисунке в campare?