zoukankan      html  css  js  c++  java
  • 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能

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

    用户点击编辑时,在点击行下动态产生一行。编辑铵钮变为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="40px;"></td>').append($btnUpdate));
    
                var $btnCancel = $('<input/>').attr({ type: 'button', class: 'Cancel', value: '取消' });
                row.append($('<td style="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



  • 相关阅读:
    Spring JPA使用CriteriaBuilder动态构造查询
    vscode 将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹
    CDN 加速配置
    dos常用命令
    使用Github作为博客的图床
    一个简单mock-server 解决方案
    postman(三):详解postman动态变量使用
    postman(一):详解在postman中使用环境变量
    postman(二):详解在Pre-request Script中如何执行请求
    MySql中4种批量更新的方法
  • 原文地址:https://www.cnblogs.com/insus/p/6547700.html
Copyright © 2011-2022 走看看