2012-02-09 42 views
0

我將首先說我對MVC3非常陌生,並且只需要一些大致的方向。在一些操作之後將控件添加到頁面MVC3

我目前有一個帶有DevExpress上傳控件的MVC3網頁。上傳控件解析所選文檔,並使用從文件中獲取的數據調用web服務。我想在devexpress網格中顯示webservice響應(我在部分視圖中),但不知道如何在webservice的結果收到之後實例化它。

這裏是我迄今爲止...

Index.cshtml

<div id="form" style="float:left; margin-left:50px;"> 
<p>Select a file to upload:</p> 

@using (Html.BeginForm("Index", "StepUpdater", FormMethod.Post, new { id="uploadForm", name="uploadForm" })) 
{ 
    @Html.DevExpress().UploadControl(settings => 
     { 
      settings.Name = "uploadController"; 
      settings.Width = 325; 
      settings.CallbackRouteValues = new { Controller = "StepUpdater", Action = "CallbacksUpload" }; 
      settings.UploadButton. 
     }).GetHtml() 

    <label style="color:Red">@TempData["Error"]</label> 

    @Html.DevExpress().Button(settings => 
     { 
      settings.Name = "uploadButton"; 
      settings.Text = " Upload"; 
      settings.UseSubmitBehavior = false; 
      settings.ClientSideEvents.Click = "function(s,e){uploadController.Upload();}"; 
     }).GetHtml() 
} 

<br /> 

@Html.Partial("GridViewPartial", (IEnumerable<StepResponse>)Model) 

GridViewPartial.cshtml

@using DevExpress.Web.Mvc.UI 
@using DevExpress.Web.Mvc 
@Html.DevExpress().GridView(settings => { 
    settings.Name = "Responses"; 
    settings.CallbackRouteValues = new { Controller = "StepUpdater", Action =   "GridViewPartial" }; 
    settings.Settings.ShowColumnHeaders = true; 
    settings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 
}).Bind(Model).GetHtml() 

則控制器

private IEnumerable<StepResponse> responses = new List<StepResponse>(); 
    public IEnumerable<StepResponse> Responses 
    { 
     get { return responses; } 
     set { responses = value; } 
    } 

    public ActionResult Index() 
    { 
     return View(Responses); 
    } 

    public ActionResult GridViewPartial() 
    { 
     if (Responses == null) 
      Responses = new List<StepResponse>(); 

     return PartialView("GridViewPartial", Responses); 
    } 



    public ActionResult CallbacksUpload() 
    { 
     UploadControlExtension.GetUploadedFiles("uploadController", new ValidationSettings { AllowedFileExtensions = new []{ ".csv" }}, uploadControl_FileUploadCompleted); 
     return GridViewPartial(); 
    } 

    .... steps to parse csv and put results in Responses object 

回答

0

我看到您正在通過客戶端上載方法上傳文件。

您可以通過以下方式更新的GridView:

1)處理好「CallbacksUpload」行動和處理上載的文件;

2)例如,通過會話狀態存儲關於上傳和計劃的Web服務調用的信息;

3)如在線"File Upload - AJAX Uploading"演示中所示,處理客戶端FileUploadComplete事件;

4)通過客戶端PerformCallback方法執行定製的GridView回調,如在線"Grid View - Grouping"演示中所示;

4)處理 「GridViewPartial」 行動,執行Web服務調用,填充GridView的模型,並用此模型返回 「GridViewPartial」 PartialView。

相關問題