使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能

本文介绍了一个 ASP.NET MVC 应用中实现行内编辑和删除功能的方法。通过 JavaScript 和 jQuery 实现了对表格数据的动态修改,包括编辑按钮的功能、删除按钮的确认对话框以及更新按钮的 Ajax 请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看看下面实时效果演示:

 

用户点击编辑时,在点击行下动态产生一行。编辑铵钮变为disabled。
新产生的一行有更新和取消的铵钮,点击“取消”铵钮,删除刚刚动态产生的行。编辑铵钮状态恢复。

更新与删除铵钮功能没有什么特别的。

 在ASP.NET MVC视图html代码如下,普通的表格table,普通的html标签:



删除的铵钮功能:

  

$('.Delete').click(function () {
            var flag = confirm('你确认是否删除记录?');
            if (flag) {
                var tr = $(this).closest('tr');

                var obj = {};
                obj.Ltc_nbr = tr.find('.SelectSingle').val();

                $.ajax({
                    type: 'POST',
                    url: "/Highway/LandTransportationCityDelete",
                    dataType: 'json',
                    data: JSON.stringify(obj),
                    contentType: 'application/json; charset=utf-8',
                    success: function (data, textStatus) {
                        if (data.Success) {
                            window.location.href = data.RedirectUrl;
                        }
                        else {
                            alert(data.ExceptionMessage);
                            return;
                        }
                    },
                    error: function (xhr, status, error) {
                        alert("An error occurred: " + status + "nError: " + error);
                    }
                });
            }
            return false;
        });
Source Code

 

编辑的铵钮功能,需要动态产生一新行。处理每个字段的html的标签:

 

 $('.Edit').click(function (e) {
            var tr = $(this).closest('tr')

            var row = $('<tr>');

            row.append($('<td><input class="city_key" type="hidden" value="' + tr.find('.SelectSingle').val() + '" /></td>'));
            row.append($('<td></td>'));

            $selectCity = $('<select />').attr({ name: 'city', class: 'selectcity' });
            $("<option></option>", { value: "", text: "" }).appendTo($selectCity);
            $.getJSON("/Highway/GetCities", function (data) {
                $.each(data, function (i, item) {
                    if (item.City_nbr == tr.find('.city_key').val()) {
                        $("<option></option>", { value: item.City_nbr, text: item.City_Name,selected :"selected" }).appendTo($selectCity);
                    }
                    else {
                        $("<option></option>", { value: item.City_nbr, text: item.City_Name}).appendTo($selectCity);
                    }
                })
            });
            row.append($('<td></td>').append($selectCity));

            row.append($('<td></td>'));
            row.append($('<td></td>'));
            row.append($('<td></td>'));

            $cb = $('<input/>').attr({ type: 'checkbox', class: 'ckbIsActived', checked: tr.find('.ckbIsActived').is(':checked') == true ? 'true' : '' });
            row.append($('<td></td>').append($cb));

            var $btnUpdate = $('<input/>').attr({ type: 'button', class: 'Update', value: '更新' });
            row.append($('<td style="width:40px;"></td>').append($btnUpdate));

            var $btnCancel = $('<input/>').attr({ type: 'button', class: 'Cancel', value: '取消' });
            row.append($('<td style="width:40px;"></td>').append($btnCancel));

            tr.after(row);

            $(this).attr("disabled", "disabled");
        });
Source Code

 

更新铵钮功能:

 

 $('table.city-list').delegate('.Update', 'click', function (event) {
            var tr = $(this).closest("tr");

            var obj = {};
            obj.Ltc_nbr = tr.find('.city_key').val();
            obj.City_nbr = tr.find('.selectcity').val();
            obj.IsActived = tr.find('.ckbIsActived').is(':checked');

            $.ajax({
                type: 'POST',
                url: "/Highway/LandTransportationCityUpdate",
                dataType: 'json',
                data: JSON.stringify(obj),
                contentType: 'application/json; charset=utf-8',
                success: function (data, textStatus) {
                    if (data.Success) {
                        alert("陆运城市更新成功。");
                        window.location.href = data.RedirectUrl;
                    }
                    else {
                        alert(data.ExceptionMessage);
                        return;
                    }
                },
                error: function (xhr, status, error) {
                    alert("An error occurred: " + status + "nError: " + error);
                }
            });
        });
Source Code

 

还一个取消铵钮功能:

 

$('table.city-list').delegate('.Cancel', 'click', function (event) {
            var tr = $(this).closest("tr");
            tr.prev().find('.Edit').removeAttr('disabled');
            tr.remove();
        });
Source Code

 

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值