zoukankan      html  css  js  c++  java
  • 使用Jquery实现可编辑的表格 并使用AJAX提交到服务器修改数据

    使用Jquery实现可编辑的表格 并使用AJAX提交到服务器修改数据
    
     
    
    下面是js Code:
    
    $(function() {    // 相当于在页面中的body标签加上onload事件
        $(".caname").click(function() {   // 给页面中有caname类的标签加上click函数
            var objTD = $(this);
            var oldText = $.trim(objTD.text());  // 保存老的类别名称
            var input = $("<input type='text' value='" + oldText + "' />"); // 文本框的HTML代码
            objTD.html(input);   // 当前td的内容变为文本框
            // 设置文本框的点击事件失效
            input.click(function() {
                return false;
            });
            // 设置文本框的样式
            input.css("border-width", "0px");  //边框为0
            input.height(objTD.height());   //文本框的高度为当前td单元格的高度
            input.width(objTD.width());    // 宽度为当前td单元格的宽度
            input.css("font-size", "14px");    // 文本框的内容文字大小为14px
            input.css("text-align", "center");   // 文本居中
            input.trigger("focus").trigger("select");   // 全选
    
            // 文本框失去焦点时重新变为文本
            input.blur(function() {
                var newText = $(this).val(); // 修改后的名称
                var input_blur = $(this);
    
                // 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作
                if (oldText != newText) {
                    // 获取该类别名所对应的ID(序号)
                    var caid = $.trim(objTD.prev().text());
                    // AJAX异步更改数据库
                    var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime();
                    $.get(url, function(data) {
                        if (data == "false") {
                            $("#test").text("类别修改失败,请检查是否类别名称重复!");
                            input_blur.trigger("focus").trigger("select");   // 文本框全选
                        } else {
                            $("#test").text(""); 
                            objTD.html(newText);
                        }
                    });
                } else {
                    // 前后文本一致,把文本框变成标签
                    objTD.html(newText);
                }
            });
    
            // 在文本框中按下键盘某键
            input.keydown(function(event) {
                var jianzhi = event.keyCode;
                var input_keydown = $(this);
    
                switch (jianzhi) {
                    case 13: // 按下回车键 ,把修改后的值提交到数据库
                        // $("#test").text("您按下的键值是: " + jianzhi);
                        var newText = input_keydown.val(); // 修改后的名称
                        // 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作
                        if (oldText != newText) {
                            // 获取该类别名所对应的ID(序号)
                            var caid = $.trim(objTD.prev().text());
                            // AJAX异步更改数据库
                            var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime();
                            $.get(url, function(data) {
                                if (data == "false") {
                                    $("#test").text("类别修改失败,请检查是否类别名称重复!");
                                    input_keydown.trigger("focus").trigger("select");   // 文本框全选
                                } else {
                                    $("#test").text("");
                                    objTD.html(newText);
                                }
                            });
                        } else {
                            // 前后文本一致,把文本框变成标签
                            objTD.html(newText);
                        }
                        break;
                    case 27: // 按下Esc键, 取消修改,把文本框变成标签
                        $("#test").text("");
                        objTD.html(oldText);
                        break;
                }
            });
    
        });
    });
    
    
    // 屏蔽Enter按键
    $(document).keydown(function(event) {
        switch (event.keyCode) {
            case 13: return false;
        }
    }); 
    
    下面是 一般处理程序代码 ChangeCaName.ashx
    
    <%@ WebHandler Language="C#" Class="ChangeCaName" %>
    using System;
    using System.Web;
    using BLL;
    using Model;
    
    public class ChangeCaName : IHttpHandler
    {
    
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
    
            string caid = context.Request.QueryString["caid"];
            string caname = context.Server.UrlDecode(context.Request.QueryString["caname"]);
            // 判断数据库中是否已经存在同名类别
            if (new CategoryManager().IsExists(caname))
            {
                context.Response.Write("false");
                return;
            }
            // 更改数据库类别名
            Category ca = new Category(caid, caname);
            bool b = new CategoryManager().Update(ca);
            if (b)
            {
                context.Response.Write("true");
            }
            else
            {
                context.Response.Write("false");
            }
    
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    
    }
  • 相关阅读:
    Android:日常学习笔记(7)———探究UI开发(1)
    Android:日常学习笔记(6)——探究活动(4)
    JavaScript:基础扩展(1)——JSON
    JavaScript:学习笔记(3)——正则表达式的应用
    正则表达式:快速入门
    LeetCode_Easy_471:Number Complement
    Java实现——字符串分割以及复制目录下的所有文件
    DOM、SAX、JDOM、DOM4J以及PULL在XML文件解析中的工作原理以及优缺点对比
    一个简单电商网站开发过程中的业务资料整理
    大道至简,不简则死
  • 原文地址:https://www.cnblogs.com/moweiran/p/3494169.html
Copyright © 2011-2022 走看看