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 #' /> <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
이벤트를 추가했지만 이벤트가 실행되지 않습니다. (Html.Kendo(). MHPPortal.ProductList의 그리드() _ .NAME ("GRID2") _ .DataSource @ (기능 (DS) ds.Ajax() _ .MODEL (하위 (모델) 모델 데이터 ("gridParms")) _ .Destroy (함수 (파기)) .Destroy (함수 (읽기)) 읽기 .Action ("GetAjaxItems", "ShoppingCartItems".Events (함수 (e) e.RequestEnd ("OnRequestEnd")) ) _ – user1979215
OK.Action ("DeleteAjaxItems", "ShoppingCartItems", 새 항목으로 {ShoppingCartID = ViewData ("ShoppingCartID" RequestStart를 추가하고 그리드가로드 될 때 실행되지만 Grid에서 라인 항목을 삭제 한 후에 RequestEnd Never는 실행되지 않습니다. – user1979215
정답은 결코 얻을 수는 없지만 requestEnd를 사용하는 것입니다. 이 일은 결코 해고 된 적이 없습니다. 그리드가 파괴를 처리하도록 허용하지 않고 수동으로 파괴를 관리하는 또 다른 해결책을 발견했습니다. – user1979215