2012-02-02 4 views
0

У меня странная проблема с расширениями Devexpress MVC. Я создал сетку и включил CommandColumns, чтобы иметь возможность добавлять, редактировать и удалять строки.ASP.NET MVC - GridViewEditingMode.PopupEditForm не показывает

@model IEnumerable 
    @{ 
     var grid = Html.DevExpress().GridView(settings => 
                { 
                 settings.Name = "dxGridView"; 
                 settings.Width = Unit.Pixel(678); 
                 settings.SettingsEditing.Mode = GridViewEditingMode.PopupEditForm; 
                 settings.SettingsEditing.PopupEditFormModal = true; 
                 settings.KeyFieldName = "ID"; 
                 settings.CallbackRouteValues = new {Controller = "Home", Action = "ContentPartial"}; 
                 settings.CommandColumn.Visible = true; 
                 settings.CommandColumn.EditButton.Visible = true; 
                 settings.CommandColumn.DeleteButton.Visible = true; 
                 settings.CommandColumn.DeleteButton.Text = "Delete"; 
                 settings.CommandColumn.NewButton.Visible = true; 
                 settings.CommandColumn.NewButton.Text = "New"; 
                 settings.SettingsEditing.AddNewRowRouteValues = new {Controller = "Home", Action = "AddPartial"}; 
                 settings.SettingsEditing.UpdateRowRouteValues = new {Controller = "Home", Action = "EditPartial"}; 
                 settings.SettingsEditing.DeleteRowRouteValues = new {Controller = "Home", Action = "DeletePartial"}; 

                 settings.SettingsBehavior.ConfirmDelete = true; 
                  settings.SetEditFormTemplateContent(x => 
               { 
                Html.DevExpress().Label(val => val.Text = "Afasdfsadfsadfsdafasfasdf").Render(); 
                Html.DevExpress().Button(
                 btnSettings => 
                 { 
                  btnSettings.Name = "btnUpdate"; 
                  btnSettings.ControlStyle.CssClass = "button"; 
                  btnSettings.Text = "Update"; 
                  btnSettings.ClientSideEvents.Click = "function(s, e){ dxGridView.UpdateEdit(); }"; 
                 } 
                 ) 
                 .Render(); 
                Html.DevExpress().Button(
                 btnSettings => 
                 { 
                  btnSettings.Name = "btnCancel"; 
                  btnSettings.ControlStyle.CssClass = "button"; 
                  btnSettings.Text = "Cancel"; 
                  btnSettings.ClientSideEvents.Click = "function(s, e){ javascript:pcModalMode.Show(); }"; 
                 } 
                 ) 
                 .Render(); 
               }); 
    } 

    @grid.Bind(Model).GetHtml(); 

Как вы можете видеть, я установил простой контент для редактирования формы. Проблема в том, что после нажатия кнопки «Новое» или «Редактировать» всплывающее окно не отображается. settings.SettingsEditing.Mode = GridViewEditingMode.PopupEditForm; - единственная настройка, которая не работает. Встроенный режим и другие режимы работают нормально, но мне нужно открыть всплывающее окно.

ответ

1

Эта проблема выглядит странно. Ваш код похож на демо-версию "Grid View - Inline Editing (Templates)".

Только в случае, не удалить «JavaScript» подстроку из следующей части кода:

//btnSettings.ClientSideEvents.Click = "function(s, e){ javascript:pcModalMode.Show(); }"; 
btnSettings.ClientSideEvents.Click = "function(s, e){ pcModalMode.Show(); }"; 

Этот префикс больше не требуется.

Смежные вопросы