2014-01-23 1 views
0

Я открываю представление во всплывающем элементе управления, используя свойство ContentUrl popup. Но когда я пытаюсь переместить позиции всплывающего окна, выбирая заголовок всплывающего окна. popup containst blank blank Я перемещаю или выбираю заголовок всплывающего окна. Такая же проблема присутствует в демонстрации demvepress, которая была предоставлена ​​онлайн.Всплывающее окно становится пустым во время перемещения всплывающих окон, выбирая заголовок всплывающего окна

Я refered следующей демонстрации DevExpress всплывающей controal http://demos.devexpress.com/MVCxDockAndPopupsDemos/PopupControl/ContentUrl

Я написал следующий код HomeController

public class HomeController : Controller 
    { 

     public ActionResult SendProduct(string rowId) 
     { 
      Product objProduct = new Product(); 
      return View(objProduct); 
     } 

     [HttpPost] 
     public ActionResult SendProduct(Product objProduct) 
     { 
      return View(objProduct); 
     } 
    } 

Модели продукта

public class Product 
{ 
    public int ProductId { get; set; } 

    [Required] 
    public string Name { get; set; } 
} 

Index.chtml

@{ 
    ViewBag.Title = "Home Page"; 
} 
@using DevExpress.Web.Mvc.UI 
@using DevExpress.Web.ASPxGridView 
@using UI.Infrastructure.Resources; 
<script type="text/javascript"> 
    function OnBeginCallback(s, e) { 
     e.customArgs["rowId"] = 123; 
    } 
    function Click() { 
     pcSendProduct.PerformCallback(); 
     if (!pcSendProduct.IsVisible()) 
      pcSendProduct.Show(); 
    } 
</script> 

<a href="javascript:Click()">Enumalate menu click</a> 
<div> 
    @Html.DevExpress().Button(settings => 
            { 
             settings.Name = "btnSend"; 
             settings.Width = 80; 
             settings.Text = "Find"; 
             settings.UseSubmitBehavior = false; 
             settings.ClientSideEvents.Click = string.Format("function(s, e) {{ Click(); }}"); 
            }).GetHtml() 
</div> 
    @Html.DevExpress().PopupControl(
    settings => 
    { 
     settings.Name = "pcSendProduct"; 
     settings.Width = 1050; 
     settings.Height = 550; 
     settings.HeaderText = "Plan Customer Interaction"; 
     settings.CloseAction = DevExpress.Web.ASPxClasses.CloseAction.CloseButton; 
     settings.Styles.Header.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center; 
     settings.Styles.Header.VerticalAlign = System.Web.UI.WebControls.VerticalAlign.Middle; 
     settings.Styles.Header.Font.Size = 10; 
     settings.Modal = true; 
     settings.ShowHeader = true; 
     settings.ShowCloseButton = true; 
     settings.CloseAction = DevExpress.Web.ASPxClasses.CloseAction.CloseButton; 
     settings.Left = 1245; 
     settings.Top = 300; 
     settings.Styles.ModalBackground.BackColor = System.Drawing.Color.Transparent; 
     //settings.ContentUrl = Url.Action("SendProduct", "Home"); 
     settings.ShowLoadingPanel = true; 
     settings.ClientSideEvents.BeginCallback = "OnBeginCallback"; 
    }).GetHtml() 

SendProduct.cshtml

@model Demo.Models.Product 
@{ 
    ViewBag.Title = "SendProduct"; 
} 

<h2>SendProduct</h2> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>Product</legend> 

     @Html.HiddenFor(model => model.ProductId) 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Name) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Name) 
      @Html.ValidationMessageFor(model => model.Name) 
     </div> 

     <p> 
      <input type="submit" value="Save" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 

В коде выше, когда я нажимаю на кнопку всплывающего окна открыться на Brouser правильно. но когда я выбираю заголовок всплывающего окна для изменения позиции позиции или по какой-либо причине всплывающее окно будет отключено, или всплывающее окно отобразит пустое содержимое. Когда я отменяю всплывающее окно, всплывающее окно содержит отображение отображения во всплывающем окне

Пожалуйста, дайте мне решение, чтобы пользователь выбрал всплывающий заголовок, а затем всплывающее окно не станет пустым. Всплывающее окно должно отображать представление.

+0

Я скопировал вашу установку PopupControl в моем проекте и не нашли, что поведение в Chrome и IE11. Вы регистрируете все стили и скрипты DevExpress (Html.DevExpress(). GetStyleSheets и GetScripts)? – Michael

+0

Благодарим вас за ошибочную ошибку. Я прокомментировал настройки.ContentUrl = Url.Action («SendProduct», «Home»); код в popup, поэтому, пожалуйста, раскомментируйте этот код, чтобы открыть представление во всплывающем окне. После этого вы получите, что blan содержит условие – user1937935

+0

Теперь я воспроизвел его. Я объяснил, почему это происходит. – Michael

ответ

0

Here Команда devexress шесть лет назад дала объяснение, что это невозможно, если вы используете свойство ContentUrl, потому что элемент управления отображает его в iframe.

Вы можете писать просмотр содержимого в ViewContext, но ваш контроллер должен возвращать PartialView.

public class HomeController : Controller 
{ 
    public ActionResult SendProduct(string rowId) 
    { 
     Product objProduct = new Product(); 
     return PartialView(objProduct); 
    } 

    [HttpPost] 
    public ActionResult SendProduct(Product objProduct) 
    { 
     return PartialView(objProduct); 
    } 
} 

настройки Всплывающие

settings.SetContent(() => 
    { 
     ViewContext.Writer.Write((Html.Action("SendProduct", "Home").ToHtmlString())); 
    }); 
    //settings.ContentUrl = Url.Action("SendProduct", "Home"); 
Смежные вопросы