Получение 'System.Collections.Generi c .List`1 [System.String]' при попытке установить атрибут ввода в kendo multiSelectFor - PullRequest
0 голосов
/ 05 марта 2020

Я использую 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?

...