2015-10-06 95 views
1

我尝试启用MVC上传控件时出现问题。上传控件最初是禁用的。我想要在用户在CheckBoxList中选择一个选项时启用上传控件。 UploadControl不允许在客户端更改它的启用状态,但是如何做到这一点。你能帮助我,并举例说明如何用回发或其他方式做到这一点。如何在客户端启用devexpress MVC上传控件

回答

0

将UploadControl放在CallbackPanel之内。

@Html.DevExpress().CallbackPanel(settings => 
{ 
    settings.Name = "CallbackPanel"; 
    settings.CallbackRouteValues = new { Controller = "Home", Action = "CallbackPanelPartial" }; 
    // other settings 
    settings.SetContent(() => 
    { 
     using (Html.BeginForm("UploadControlUpload", "Home", FormMethod.Post)) 
     { 
      Html.DevExpress().UploadControl(s => 
     { 
      s.Name = "UploadControl"; 
      s.CallbackRouteValues = new { Controller = "Home", Action = "UploadControlUpload" }; 
      // other settings 
      s.Enabled = (bool)ViewData["UPEnabled"]; 
     }).Render(); 
     } 
    }); 
}).GetHtml() 

我们将存储一个变量,该变量将指示ViewControl中是否启用了UploadControl。所以,我在CallbackPanel局部视图上获得它的值。在我们看来,我们将呈现CallbackPanel以下列方式:

@Html.Action("CallbackPanelPartial", new { CPEnabled = false }) 

而我们的控制器方法来处理回调到CallbackPanel是:

public ActionResult CallbackPanelPartial(bool CPEnabled) { 
    ViewData["UPEnabled"] = CPEnabled; 
    return PartialView("_CallbackPanelPartial"); 
} 

当你选中一个复选框,发送回调CallbackPanel启用UploadControl。为此,请处理the CheckBox CheckedChanged client side event

@Html.DevExpress().CheckBox(settings => 
{ 
    // other settings 
    settings.Properties.ClientSideEvents.CheckedChanged = "function (s, e) { CallbackPanel.PerformCallback({CPEnabled: true}); }"; 
}).GetHtml() 
相关问题