2013-01-15 2 views
2

저는 KENDO UI가 새로 생겼습니다. Kendo와 VB.Net을 사용하고 있기 때문에 다소 혼란 스럽습니다. 번역은 조금 이상합니다. . 다음과 같이Kendo UI Grid Ajax 성공을 파괴하십시오

은 내가 ASP.Net MVC 페이지에서 검도 그리드를 사용하고 있습니다 : 나는 파괴 아약스 통화에서 값을 반환하고

@(Html.Kendo().Grid(Of Portal.ProductList).Name("Grid2") _ 
    .DataSource(Function(ds) ds.Ajax() _ 
    .Model(Sub(model) model.Id(Function(p) p.ItemID)) _ 
    .Read(Function(read) read.Action("GetAjaxItems", "ShoppingCartItems").Data("gridParms")) _ 
    .Destroy(Function(destroy) destroy.Action("DeleteAjaxItems", "ShoppingCartItems", New With {.ShoppingCartID = ViewData("ShoppingCartID")})) _ 
               ) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.ItemCodeOrdering).Title("Item")) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.Description)) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.Quantity).Title("Quantity").ClientTemplate("<input type='text' style='width:40px;' id='QTY#= ItemID #' value='#= Quantity #' /> &nbsp;<input type='button' id='UPD#= ItemID#' value='Update' onclick='updateItemQty(this)' /> ")) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.Price).Title("Unit Price").ClientTemplate("<div id='price#=ItemID#'>$#=Price.toFixed(2)#</div>")) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.Quantity).Title("Total Price").ClientTemplate("<div id='total#=ItemID#'>$#= (Price * Quantity).toFixed(2) #</div>")) _ 
    .Columns(Function(modelItem) modelItem.Bound(Function(p) p.ItemID)) _ 
    .Columns(Function(modelItem) modelItem.Command(Sub(cmd) cmd.Destroy())) 
    ) 

. 해당 값을 검색하고 페이지에서 AJAX 호출의 Success 이벤트의 총계와 함께 다른 div를 업데이트 할 수 있어야하지만이 이벤트를 차단하는 방법을 결정할 수는 없습니다.

기본적으로이 격자는 주문 된 광고 항목을 보여 주며 페이지 하단에 주문 총계가 있습니다. 우리가 주문에 삭제 된 항목에서 돌아올 때 나는 컨트롤러에서 값을 반환에서 총을 업데이 트하고 싶습니다. 난 당신이 requestEnd 이벤트를 사용할 수 있습니다

컨트롤러

<HttpPost()> 
    Function DeleteAjaxItems(<DataSourceRequest()> request As DataSourceRequest, Optional ShoppingCartID As Integer = 0, Optional ItemID As Integer = 0) As ActionResult 
     Dim sci = db.ShoppingCartItems.Where(Function(c) c.ShoppingCartID = ShoppingCartID And c.ItemID = ItemID) 

     If Not IsNothing(sci.FirstOrDefault) Then 
      db.ShoppingCartItems.Remove(sci.FirstOrDefault) 
      db.SaveChanges() 
     End If 

     Dim ShoppingCartItems = db.ShoppingCartItems.Include(Function(s) s.ShoppingCart).Where(Function(s) s.ShoppingCartID = ShoppingCartID) 
     Dim ShoppingCartItemsTotal = ShoppingCartItems.Sum(Function(item) item.DealerPrice * item.Quantity) 

     Return New JsonResult With {.Data = Format(ShoppingCartItemsTotal, "c")} 
     'Return Nothing 

    End Function 

답변

4

...이 말이 바랍니다. 서버 응답이 리턴 될 때 발생합니다.

+0

이벤트를 추가했지만 이벤트가 실행되지 않습니다. (Html.Kendo(). MHPPortal.ProductList의 그리드() _ .NAME ("GRID2") _ .DataSource @ (기능 (DS) ds.Ajax() _ .MODEL (하위 (모델) 모델 데이터 ("gridParms")) _ .Destroy (함수 (파기)) .Destroy (함수 (읽기)) 읽기 .Action ("GetAjaxItems", "ShoppingCartItems".Events (함수 (e) e.RequestEnd ("OnRequestEnd")) ) _ – user1979215

+0

OK.Action ("DeleteAjaxItems", "ShoppingCartItems", 새 항목으로 {ShoppingCartID = ViewData ("ShoppingCartID" RequestStart를 추가하고 그리드가로드 될 때 실행되지만 Grid에서 라인 항목을 삭제 한 후에 RequestEnd Never는 실행되지 않습니다. – user1979215

+1

정답은 결코 얻을 수는 없지만 requestEnd를 사용하는 것입니다. 이 일은 결코 해고 된 적이 없습니다. 그리드가 파괴를 처리하도록 허용하지 않고 수동으로 파괴를 관리하는 또 다른 해결책을 발견했습니다. – user1979215

관련 문제