2012-01-27 101 views
0

我在我的頁面上有telerik電網。但它工作不正確。問題:當我點擊按鈕編輯調用方法按鈕的選擇。 我的網格視圖MVC 3 + telerik電網

@(Html.Telerik().Grid(Model) 
    .Name("Grid") 
    .DataKeys(keys => keys.Add(c => c.CommandId)) 
     .DataBinding(dataBinding => 
      { 
       dataBinding.Server().Update("Update", "CommandEntity"); 
       dataBinding.Server().Select("Print", "CommandEntity"); 
       dataBinding.Server().Delete("Delete", "CommandEntity"); 
      }) 
    .Columns(columns => 
    { 
     columns.Bound(o => o.Date).Format("{0:dd/MM/yyyy}").Width(100); 
     columns.Bound(o => o.Number).Width(40); 
     columns.Bound(o => o.Employees).Width(240); 
     columns.Bound(o => o.DayCount).Width(40); 
     columns.Bound(o => o.Destinations).Width(220); 
     columns.Bound(o => o.ShortTarget).Width(200); 
     columns.Bound(o => o.TypeAssignment).Width(90); 
     columns.Command(commands => 
     { 
      commands.Edit().ButtonType(GridButtonType.Image); 
      commands.Delete().ButtonType(GridButtonType.Image); 
      commands.Select().ButtonType(GridButtonType.Image); 
     }).Width(100).Title("actions"); 
    }) 
    .Scrollable(scrolling => 
    { 
     scrolling.Enabled(true); 
     scrolling.Height("500px"); 
    }) 
    .Editable(editing => editing.Mode(GridEditMode.PopUp)) 
    .Sortable(sorting => sorting.Enabled(true)) 
    .Pageable(paging => 
     { 
      paging.Enabled(true); 
      paging.PageSize(15); 
     }) 
    .Filterable(filtering => filtering.Enabled(true)) 
    .Groupable(grouping => grouping.Enabled(true)) 
    .Footer(true)) 

方法:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Delete(Guid id) 
    { 
     new DataManager().RemoveCommandEntity(id); 
     return RedirectToAction("Index", "CommandEntity"); 
    } 

    [AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult Print(Guid id) 
    { 
     byte[] rep = Reports.ReportBuilder.CreateReport(id); 
     return File(rep, System.Net.Mime.MediaTypeNames.Application.Pdf); 
    } 


    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Update(CommandEntity obj) 
    { 
     new DataManager().UpdateCommand(obj); 
     HttpContext.Session["Entities"] = null; 
     return RedirectToAction("Index", "CommandEntity"); 
    } 

應該調用Update方法而是叫做所謂的打印。雖然沒有選擇方法一切正常。 這裏有什麼問題?

回答

1

我認爲這個問題是在這裏:

DataBinding(dataBinding => 
      { 
       dataBinding.Server().Update("Update", "CommandEntity"); 
       dataBinding.Server().Select("Print", "CommandEntity"); 
       dataBinding.Server().Delete("Delete", "CommandEntity"); 
      }) 

數據綁定應使用的Ajax或Web服務綁定。當你想使用服務器綁定,然後你只需綁定到模型,那麼你根本不需要使用DataBinding方法。

我想你應該這部分代碼更改爲:

DataBinding(dataBinding => 
      { 
       dataBinding.Ajax().Update("Update", "CommandEntity"); 
       dataBinding.Ajax().Select("Print", "CommandEntity"); 
       dataBinding.Ajax().Delete("Delete", "CommandEntity"); 
      }) 

或者,如果你想通過服務器綁定,然後填充網格:

DataBinding(dataBinding => 
      { 
       dataBinding.Ajax().Update("Update", "CommandEntity");      
       dataBinding.Ajax().Delete("Delete", "CommandEntity"); 
      }) 
+0

感謝ü。我正在改變Ajax()和所有的工作..) – user571874 2012-01-27 08:32:34