asp.net - 可重用的 jQuery 删除功能

标签 asp.net asp.net-mvc jquery

我使用以下函数删除表中的一行

//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/

相关文章:

javascript - 使用 jQuery 显示隐藏图像

jquery - 更改导航菜单类并在滚动或单击时显示子树菜单

asp.net - asp.net 的 web.config 文件中的所有可用标签

javascript - 根据内部内容使 iframe 高度动态化- JQUERY/Javascript

c# - 如何将字符串连接到列表 C#

c# - session 在 Controller 方法中变为空

c# - iTextSharp 出现 "Specified method is not supported"错误

Asp.net 和 Kerberos 身份验证

c# - Systems.Timers.Timer 在调试中工作,但不在发布中

javascript - Highcharts 使用系列标签作为 x 轴类别