繁体   English   中英

如何使用 ajax 调用将 jQuery 中网格中已删除的行名传递给控制器(服务器端)

[英]How do I pass the deleted row name from a grid in jQuery to controller(server-side) with ajax call

我在 jQuery 成功 function 中的网格中添加了一行,如下所示(编辑添加 Rob 和 Fleix 评论):

 $(function() {

        $('#MyGrid').delegate('a.remove', 'click', function() {
            alert("del");
           // e.preventDefault();

jQuery.ajax(
        {
            type: "POST",
            url: "Upload/Remove",
            data: "removefile=" + stringhtml// error console shows it as undefined
        });

            $(this).closest('tr').remove();
        });
            $("#uploadForm").ajaxForm({
                iframe: true,
                dataType: "xml",
                url: "Upload/Index",
                success: function(result) {

        ('#MyGrid tbody').append('<tr><td> ' + stringhtml+ ' </td><td><a href="#" 
                class="remove">Remove</a></td></tr>');
              });
    });

ajax 调用不是为了删除点击,而是在页面加载后点击。 如何通过 stringhtml 使 ajax 调用删除点击? 你们能不能帮帮我!

感谢您,

迈克尔德

绑定到删除链接的点击事件

$('#MyGrid').delegate('a.remove', 'click', function(e){
    e.preventDefault();
    $(this).closest('tr').remove();
});

将您的行 append 代码更改为

$('#MyGrid tbody').append('<tr><td> ' + stringhtml+ ' </td><td><a href="#" class="remove">Remove</a></td></tr>');

首先,更新您的“删除”链接,使其类似于:

<a href="#" onclick="remove(this.parentNode)">Remove</a>

然后像这样实现你的remove() function :

function remove(node) {
    node.parentNode.parentNode.removeChild(node.parentNode);
    //equivalent:  $('#MyGrid tbody')[0].removeChild(node.parentNode);
}

这是一个例子: http://jsfiddle.net/nNde4/5/

首先,避免使用内联 onclick 属性。 而是使用$(selector).bind('click', function(e){}); $(selector).click(function(e){}); . 在您的情况下,实际使用live()会更有意义,因为您不必一遍又一遍地附加每个事件。 所以使用以下应该可以工作:

$('#MyGrid a').live('click', function(e){
    $(e.target).parent().parent().remove();
});

另请注意,您不必每次添加行时都调用它。 仅在创建表时(在加载等时)调用一次,它应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM