2014-01-28 87 views
1

我使用MVC劍道可以listview.I傳遞值控制器之前趕上鑑於刪除()事件,但我不能找到一種方法如何中斷或允許它傳遞給controller.Here是我的看法:Kendo MVC - 如何中斷remove()動作以確認彈出窗口?

編輯:經過一番搜索,我看到我需要獲取有關「e」包含的jquery的數據。但是仍然無法弄清楚如何去做。

@(Html.Kendo().ListView<AIS.UI.WebService.Proxy.DSrvAllService.NewsItem>() 
.Name("listView") 
.Events(e=>e.Remove("deleteAnnouncement")) 
.TagName("div") 
.ClientTemplateId("template") 
.AutoBind(true) 
.DataSource(dataSource => dataSource 
.Model(model => model.Id("ID")) 
.PageSize(5) 

.Read(read => read.Action("AnnouncementsRead", "Administrator")) 
.Destroy(delete=>delete.Action("AnnouncementDelete","Administrator"))) 
.Editable() 
.Pageable() 
) 

JS:

function deleteAnnouncement() { 
     $("#dialog-confirm").css("visibility", "visible"); 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      draggable: false, 
      height: 180, 
      width: 400, 
      modal: true, 
      buttons: { 

       "Yes": function() { 
        .... 
        $(this).dialog("close"); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }  

回答

1

在函數的開始停止的事件,然後,如果按下「是」,你可以手動發送的ID刪除功能與阿賈克斯,然後刷新頁面或數據源。

1) '的數據:{ID:ID},' 你必須找到所選項目的ID與阿賈克斯

2)你必須添加參數到控制器函數發送參數。

3)刷新頁面或數據源

function deleteAnnouncement(event) { 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
    $("#dialog-confirm").css("visibility", "visible"); 
    $("#dialog-confirm").dialog({ 
     resizable: false, 
     draggable: false, 
     height: 180, 
     width: 400, 
     modal: true, 
     buttons: { 

      "Yes": function() { 
       $.ajax({ 
       url: '@Url.Action("AnnouncementDelete","Administrator")', 
       type: 'POST', 
       dataType: "json", 
       data: { ID: id}, // send Id of selected item 
       success: function (result) { 
        if (result.Success) { 
         alert("basarili") // you don't have to return something        
        } 
        else { 
         alert("Fail"); 
        } 
       }, 
       async: false 
      }) 
       $(this).dialog("close"); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
} 
+0

很抱歉,但它只是停止event.I想要做的檢查是pressed.If它按下「是」的按鈕,數據將被傳遞給控制器​​,否則事件會被中斷 – balron

+0

會事件被停止,如果是按鈕被按下? – MustafaP

+0

我編輯了我的答案,如果我誤解了你,請告訴我更詳細的信息你想要做什麼請 – MustafaP

0

這是工作的代碼,從列表視圖檢索選定的數據,如果按下「是」按鈕,傳遞值刪除事件結束後到控制器,它刷新的數據源手動列表視圖:

的js

function refreshdataSource() { 
$("#listView").data("kendoListView").dataSource.read(); 
} 

function deleteAnnouncement(e) { 
e.preventDefault ? e.preventDefault() : e.returnValue = false; 
$("#dialog-confirm").css("visibility", "visible"); 
var data = e.model["ID"]; 
$("#dialog-confirm").dialog({ 
resizable: false, 
draggable: false, 
height: 180, 
width: 400, 
modal: true, 
buttons: { 

Okay: function() { 

$.ajax({ 
type: "POST", 
url: '@Url.Action("AnnouncementDelete", "Administrator")', 
data: { 
ID: data 
}, 
dataType: "text", 
success: function() { refreshdataSource(); }, 
error: function() { alert("Error occured!!!") } 
}); 

$(this).dialog("close"); 

}, 
Cancel: function() { 

$(this).dialog("close"); 
}}}); 
}; 

六EW:

@(Html.Kendo().ListView<AIS.UI.WebService.Proxy.DSrvAllService.NewsItem>() 
.Name("listView") 
.Events(e=>e.Remove("deleteAnnouncement")) 
.TagName("div") 
.ClientTemplateId("template") 
.AutoBind(true) 
.DataSource(dataSource => dataSource 
.Model(model => model.Id("ID")) 
.PageSize(5) 

.Read(read => read.Action("AnnouncementsRead", "Administrator")) 
.Destroy(delete=>delete.Action("AnnouncementDelete","Administrator"))) 
.Editable() 
.Pageable() 
)