我使用以下函数删除表中的一行
//delete individual row
jQuery('.stdtable img.delete').click(function(){
var c = confirm('Continue delete?');
if(c) jQuery(this).parents('tr').fadeOut(function(){
jQuery(this).remove();
});
return false;
});
此代码位于单独的 js 文件中,并且对所有页面都是通用的。 现在我想添加一个 Ajax 操作来从数据库中删除该行。但根据我所在的页面,它必须调用不同的 Controller 。
示例: 产品页面必须在ProductController中调用delete ProductGroup页面必须在ProductGroupController中调用delete
如何处理这个问题?
最佳答案
如果您需要某种方法来定义要调用的 Controller ,您可以在表上放置一个 data
属性。像这样的事情:
<table class="stdtable" data-remove-url="@Url.Action("DeleteRow", "MyController")">
<tr data-id="1">
AAA
<img class="delete" src="foo.jpg" />
</tr>
<tr data-id="2">
BBB
<img class="delete" src="foo.jpg" />
</tr>
</table>
然后在 jQuery 中,您可以获取该值作为请求的 url
参数,以及要删除的 id
。
jQuery('.stdtable img.delete').click(function(e) {
e.preventDefault();
if (confirm('Continue delete?')) {
var $el = $(this);
var $tr = $el.closest('tr');
var url = $el.closest('table').data('remove-url');
var id = $tr.data('id');
$tr.fadeOut(function() {
$el.remove();
$.post(url, { rowId = id }); // do the delete on the server
});
}
});
关于asp.net - 可重用的 jQuery 删除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140540/