DevExpress MVC 17.1 Как открыть всплывающее окно, когда событие ValueChange вызывается в LargeDataComboBox

Мне нужно, чтобы во время вызова события ValueChanged LargeDataComboBox (когда я нажимаю в строке раскрывающегося списка) отображается всплывающее окно.

_searchPanel.cshtml

    @Html.DevExpress().ComboBox(
    settings =>
    {
        settings.Name = "comboBoxSearchPanel";
        settings.Height = 30;
        settings.SelectedIndex = 0;
        settings.Properties.DropDownStyle = DropDownStyle.DropDown;
        settings.CallbackRouteValues = new { Controller = "SearchPanel", Action = "SearchPanel" };
        settings.Properties.CallbackPageSize = 30;
        settings.Properties.IncrementalFilteringMode = IncrementalFilteringMode.Contains;
        settings.Properties.FilterMinLength = 2;
        settings.Properties.ClearButton.DisplayMode = ClearButtonDisplayMode.OnHover;
        settings.Properties.ValueField = "id_usuario";
        settings.Properties.ValueType = typeof(string);
        settings.Properties.TextFormatString = "{0} {1}";
        settings.Properties.Columns.Add(column =>
        {
            column.FieldName = "iduser";
            column.Caption = "User";
        });
        settings.Properties.Columns.Add(column =>
        {
            column.FieldName = "fullname";
            column.Caption = "FUllName";
            column.Width = 175;
        });
        settings.Properties.ClientSideEvents.ValueChanged = "function(s, e) { OnValueChangeSearchPanel(s, e)}";
    }
).BindList(Model).GetHtml()

функция, в которой вызывается событие ValueChanged

    function OnValueChangeSearchPanel(s, e) {
        var x = s.GetSelectedItem().text.split(" ");
        console.log(x[0]);
//I need to replace the alert with a popup
        alert(x[0]);
    }

_popupWindow.cshtml

@Html.DevExpress().PopupControl(settings =>
{
    settings.Name = "popupUser";
    settings.AllowDragging = true;
    settings.ShowOnPageLoad = true;
    settings.CloseAction = CloseAction.CloseButton;
    settings.HeaderText = "User";
    settings.SetContent(() =>
    {
        ViewContext.Writer.Write(
          "<h1>" + "Welcome" + "</h1>"
        );
    });

Схема того, как это должно работать

введите здесь описание изображения


person bryannsi    schedule 09.10.2017    source источник


Ответы (1)


Код ниже делает свое дело

function OnValueChangeSearchPanel(s, e) {
        var x = s.GetSelectedItem().text.split(" ");
        popupUser.Show();
    }

Ваш помощник должен выглядеть так (полный код здесь)

@Html.DevExpress().PopupControl(settings =>
{
    settings.Name = "popupUser";
    settings.AllowDragging = true;
    settings.ShowOnPageLoad = true;
    settings.EnableClientSideAPI = true;
    settings.CloseAction = CloseAction.CloseButton;
    settings.PopupAction = PopupAction.None;
    settings.HeaderText = "User";
    settings.SetContent(() =>
    {
        ViewContext.Writer.Write(
          "<h1>" + "Welcome" + "</h1>"
        );
    });
person Victor Hugo Terceros    schedule 09.10.2017
comment
при вызове функции OnValueChangeSearchPanel отображается ошибка: popupContact.show не является функцией - person bryannsi; 09.10.2017
comment
Я добавил settings.EnableClientSideAPI = true; но по-прежнему показывает ту же ошибку: popupContact.show не является функцией - person bryannsi; 10.10.2017
comment
@bryannsi Я думаю, всплывающее окно называется popupUser? - person Victor Hugo Terceros; 10.10.2017
comment
да, это правильное имя. У меня есть 3 файла. 1- searchPanel.cshtml (частичное представление, где должно вызываться другое частичное представление: popupWindow.cshtml **) 2- Элемент управления всплывающим окном: **popupWindow.cshtml и 3 - файл .js, (скрипт, содержащий метод: popup User.Show()) - person bryannsi; 10.10.2017