最近MVC3を学習していて、リストビューからレコードを削除するための2つの解決策を見つけました。ただし、両方のコンポーネントが必要ですが、JavaScriptに関する知識が不足しているため、これは非常に困難です。
削除するための次の2つのリンクがあります。
@Html.ActionLink("Delete", "Delete",
new { id = item.ID }, new { @class = "delete-link" }) |
@Ajax.ActionLink("Delete Ajax", "Delete", "MyController",
new {id = item.ID},
new AjaxOptions {
HttpMethod = "POST",
OnBegin = "return ConfirmDone()",
OnSuccess = "deleteConfirmation"
})
1つ目は、次のJavaScriptを使用してレコードを削除します。
<script>
$(function () {
var deleteLinkObj;
// delete Link
$('.delete-link').click(function () {
deleteLinkObj = $(this);
$('#delete-dialog').dialog('open');
return false;
});
//definition of the delete dialog.
$('#delete-dialog').dialog({
autoOpen: false, width: 400, resizable: false, modal: true,
buttons: {
"Continue": function () {
$.post(deleteLinkObj[0].href, function (data)
{
var rowId = "#myTableItem-id-" + data.id;
$('.myTable').find(rowId).hide('slow');
});
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
});
</script>
2番目のリンクは、確認のためにこのスクリプト関数を使用します。
<script>
function ConfirmDone() {
return confirm("Are you sure you want delete this item?");
}
</script>
これらのソリューションはどちらも正常に機能しますが、2番目のリンクのコーディングが好きですが、jquery-uiが最初のリンクで生成する確認ボックスが好きです。だから私はそれらを一緒にブレンドしたいと思います。
私がする必要があると思うのは、呼び出しが呼び出されたときにAjax.ActionLink
、ConfirmDone()
最初のリンクと同じようにjqueryダイアログを表示する必要があるということです。ただし、これを作成する方法がわからず、押されたボタンに応じて、このダイアログがtrueまたはfalseを返すようにします。
どんな助けでも大歓迎です。
どうもありがとう。