2013-01-10 6 views
0

저는 KendoGrids로 MVC, Entities 응용 프로그램을 구축하고 있습니다.KendoGrid - MVC - 엔티티 - Identity 열

나는

@(Html.Kendo().Grid<ModelApp.Models.Tickets>() 
.Name("ticketgrid") 
.Columns(columns => 
    { 

     columns.Bound(p => p.TicketID).Title("ID"); 
     columns.ForeignKey(p => p.CustomerID, (System.Collections.IEnumerable)ViewData["customers"], "CustomerID", "CustomerName").Title("Customer"); 
     columns.ForeignKey(p => p.AreaOfBusinessID, (System.Collections.IEnumerable)ViewData["areaofbusinesses"], "AreaOfBusinessID", "AreaOfBusiness1").Title("AreaOfBusiness"); 
     columns.Bound(p => p.OccurredOn).Title("Occured").Format("{0:yyyy-MM-dd}"); 
     columns.ForeignKey(p => p.SeverityID, (System.Collections.IEnumerable)ViewData["severities"], "SeverityID", "Severity1").Title("Severity"); 
     columns.ForeignKey(p => p.AssigneeID, (System.Collections.IEnumerable)ViewData["assignees"], "AssigneeID", "AssigneeName").Title("Assignee"); 
     columns.ForeignKey(p => p.TicketStatusID, (System.Collections.IEnumerable)ViewData["ticketstatuses"], "TicketStatusID", "TicketStatus1").Title("Status"); 
     columns.Bound(p => p.UserID).Title("User"); 
     columns.Bound(p => p.DateRegistered).Title("Registered").Format("{0:yyyy-MM-dd}"); 
}) 
.DataSource(dataSource => 
    dataSource 
.Ajax() 
.Model(model => model.Id(p => p.TicketID)) 
.Read(read => read.Action("Index","Ticket")) 
.Create(create => create.Action("Create", "Ticket")) 
.Update(update => update.Action("Edit", "Ticket")) 
//.Destroy(destroy => destroy.Action("Delete", "Ticket"))   
    ) 
    .Pageable() 
    .Editable(editing => editing.Mode(GridEditMode.InCell)) 
    .ToolBar(toolbar => 
    { 
     toolbar.Create(); 
     toolbar.Save(); 
    }) 
    .Navigatable() 
    .Selectable() 

    ) 

이 kendoGrid

를 구축하고 난이 문제

1

)을 TICKETID의 열이 ID 열을 직면하고있다. Create 단추를 선택하면 0이 반입됩니다. Gid가이 열을 어지럽히 지 않고 데이터베이스가 처리 할 수 ​​있음을 이해하도록하려면 어떻게해야합니까? 은 물론, 더 삽입 모델이 null이기 때문에 편집 데이터베이스

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit([DataSourceRequest] DataSourceRequest request, IEnumerable<ModelApp.Models.Tickets> models) 
    { 
     if (models != null) 
     { 
      try 
      { 
       foreach (var updatedEntity in models) 
       { 
        var itemToUpdate = db.Tickets.Where(p => p.TicketID == updatedEntity.TicketID).FirstOrDefault(); 
        if (itemToUpdate != null) 
        { 
         itemToUpdate.CustomerID = updatedEntity.CustomerID; 
         itemToUpdate.AreaOfBusinessID = updatedEntity.AreaOfBusinessID; 
         itemToUpdate.AssigneeID = updatedEntity.AssigneeID; 
         itemToUpdate.OccurredOn = updatedEntity.OccurredOn; 
         itemToUpdate.SeverityID = updatedEntity.SeverityID; 
         itemToUpdate.DateRegistered = updatedEntity.DateRegistered; 
         itemToUpdate.UserID = updatedEntity.UserID; 
         db.SaveChanges(); 
         ModelState.Clear(); 
        } 
       } 
      } 
      catch (Exception e) 
      { 
       db.add_exception_log(e.Message, "UPDATE RATES"); 

      } 
     } 
     return Json(ModelState.ToDataSourceResult()); 
    } 

에 게시하지 않습니다 어쨌든 두 번째 질문

2)에 저를 걸립니다하지되고있다. 어떤 단서를 왜? 당신은 당신이 수집을 기대하는 일괄 편집을 사용하지 않는 DataSource에

model=>{ 
    model.Fiedl(p=>p.TicketID).Editable(false); 
} 

2)의 모델 구성 프로그램의 내부 필드를 편집 할 수 있도록해야한다

답변

1

1) 사전에

고맙습니다 - 변경 단일 레코드를 기대하고 서명하십시오.

public ActionResult Edit([DataSourceRequest] DataSourceRequest request, ModelApp.Models.Tickets model)