经过校园暴力后命运会很悲惨?

小说:经过校园暴力后命运会很悲惨?作者:董纯平公更新时间:2019-03-22字数:88283

“天门!”周极大喝一声,双手向上一举,一道道帝气聚合在自己的身上,一个巨大的天门出现在大阵之上。正待周极要将这天门轰出去,却感到整个大阵一阵的晃动,大阵的气势竟然在一点点的消散!

文字艺术优化(文字优化)

“族长,刚刚几位离开这里出去打探外面状况的人传来了消息,古界和魂界已经封锁了空间,布下了层层阵法禁制,要破开来就算是九星斗圣也做不到。”一个长老走过来说道。
他不相信这个结巴书生能当说客,一般都是给自己带来李光弼的信件,不料这个书生却没有信件,他脸胀得通红,更加结结巴巴道:“李、李将军,让...卑职,带、带个口信给季、季将军。”

周围本来到处都是的猛兽顿时被布兰德全部挑飞出去,眨眼之间刺出了一个方圆三米的真空区域来,根本没有任何枪林弹雨,炮火,猛兽能靠近布兰德这个区域。

引言:

      本人所属施工单位,在建项目较多,通讯录是以项目为单位挂接在公司内部网站通讯录板块,以静态页面展示。一直以来都是项目部办公室通过电话、邮件等方式通知总部信息部门变更通讯录,日常维护的工作量较大。最近受领导委托设计一款能让项目部自助维护通讯录的软件,一二级部门标题要加以区分,要方便排序,方便维护,还要统一风格显示。

 

 

↑公司现有通讯录效果展示

        第一种方案是后台挂接Excel表格,前台展示,这种显示效果一般,不符合要求。

↑Excel通讯录效果展示

        第二种方案是后台单条录入,前台用表格(XXGrid,Repeater)展示,这种维护方便,但是不太方便排版。

↑第三方表格通讯录效果展示

        第三种方案是后台编辑HTML表格,前台使用css样式调整显示风格。这种方案符合预期,但是让非技术人员编辑HTML表格,而且要统一风格,难度有点大。于是构思怎样简化用户操作,想到了用在线编辑器固定Table样式,然后通过自定义按钮实现简单的文字调整。

  ↑预期效果展示

        其实技术实现并不难,主要是细节问题处理和调试工作繁琐,本人花费两天时间研究并实现了这个功能,下面详细展开说一下。

        我这里使用的是KindEditor,最新版可以到官网下载。

        首先新建一个空白页面,引用以下脚本文件:

<script src="Script/jquery-1.8.2.min.js"></script>
<script src="Script/kindeditor/kindeditor-all-min.js"></script>
<script src="Script/kindeditor/lang/zh-CN.js"></script>

        然后自己设计或从网上找一些漂亮的table样式,比如我在百度找了一段css样式(版权归原作者啊):

 * {
            margin: 0;
            padding: 0;
        }

        body {
            padding: 40px 50px;
        }

        .demo {
            width: 600px;
            margin: 40px auto;
            font-family: "trebuchet MS", "Lucida sans", Arial;
            font-size: 14px;
            color: #444;
        }
        .header {
            text-align:center;
            background-color:#dfefff;
            height:90px;
            width:100%;
        }
        .footer {
            text-align:center;
            background-color:#dfefff;
            height:30px;
            width:100%;
            position:fixed;
            bottom:0;
        }
        table {
            *border-collapse: collapse; /* IE7 and lower */
            border-spacing: 0;
            width: 100%;
            border: solid #ccc 1px;
            -moz-border-radius: 6px;
            -webkit-border-radius: 6px;
            border-radius: 6px;
            -webkit-box-shadow: 0 1px 1px #ccc;
            -moz-box-shadow: 0 1px 1px #ccc;
            box-shadow: 0 1px 1px #ccc;
        }

            table tr {
                -o-transition: all 0.1s ease-in-out;
                -webkit-transition: all 0.1s ease-in-out;
                -moz-transition: all 0.1s ease-in-out;
                -ms-transition: all 0.1s ease-in-out;
                transition: all 0.1s ease-in-out;
            }

                table .highlight,
                table tr:hover {
                    background: #fbf8e9;
                }

            table td,
            table th {
                border-left: 1px solid #ccc;
                border-top: 1px solid #ccc;
                padding: 10px;
                text-align: left;
            }

            table th {
                background-color: #dce9f9;
                -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#ebf3fc, endColorstr=#dce9f9)";
            -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset;
            -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset;
            box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset;
            text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
            background-image: linear-gradient(top, #ebf3fc, #dce9f9);
            border-top-style: none;
            border-top-color: inherit;
            border-top-width: medium;
        }

                table td:first-child,
                table th:first-child {
                    border-left: none;
                }

                table th:first-child {
                    -moz-border-radius: 6px 0 0 0;
                    -webkit-border-radius: 6px 0 0 0;
                    border-radius: 6px 0 0 0;
                }

                table th:last-child {
                    -moz-border-radius: 0 6px 0 0;
                    -webkit-border-radius: 0 6px 0 0;
                    border-radius: 0 6px 0 0;
                }

            table tr:last-child td:first-child {
                -moz-border-radius: 0 0 0 6px;
                -webkit-border-radius: 0 0 0 6px;
                border-radius: 0 0 0 6px;
            }

            table tr:last-child td:last-child {
                -moz-border-radius: 0 0 6px 0;
                -webkit-border-radius: 0 0 6px 0;
                border-radius: 0 0 6px 0;
            }
        /*----------------------*/
        .zebra td,
        .zebra th {
            padding: 10px;
            border-bottom: 1px solid #f2f2f2;
        }

        .zebra .alternate,
        .zebra tbody tr:nth-child(even) {
            background: #f5f5f5;
            -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
            -moz-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
            box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
        }

        .zebra th {
            text-align: left;
            text-shadow: 0 1px 0 rgba(255,255,255,.5);
            border-bottom: 1px solid #ccc;
            background-color: #eee;
            -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#f5f5f5, endColorstr=#eeeeee)";
            background-image: linear-gradient(top, #f5f5f5, #eee);
        }

            .zebra th:first-child {
                -moz-border-radius: 6px 0 0 0;
                -webkit-border-radius: 6px 0 0 0;
                border-radius: 6px 0 0 0;
            }

            .zebra th:last-child {
                -moz-border-radius: 0 6px 0 0;
                -webkit-border-radius: 0 6px 0 0;
                border-radius: 0 6px 0 0;
            }

        .zebra tfoot td {
            border-bottom: 0;
            border-top: 1px solid #fff;
            background-color: #f1f1f1;
        }

            .zebra tfoot td:first-child {
                -moz-border-radius: 0 0 0 6px;
                -webkit-border-radius: 0 0 0 6px;
                border-radius: 0 0 0 6px;
            }

            .zebra tfoot td:last-child {
                -moz-border-radius: 0 0 6px 0;
                -webkit-border-radius: 0 0 6px 0;
                border-radius: 0 0 6px 0;
            }
View Code

        第三步需要找一些自定义按钮图标,添加到页面的Body里,为啥不能放到Head里呢,我也有点郁闷,放到Head里自定义按钮都不显示了,为此还调试了老半天。

/*----------编辑器上的自定义按钮图标------------*/

    .ke-icon-settfirst {
        background-image:url(/Resource/first.gif);
        width: 16px;
        height: 16px;
    }
    .ke-icon-settsecond {
        background-image:url(/Resource/second.gif);
        width: 16px;
        height: 16px;
    }
    .ke-icon-cancelthead {
        background-image:url(/Resource/cancel.gif);
        width: 16px;
        height: 16px;
    }
    .ke-icon-moveup {
        background-image:url(/Resource/moveup.gif);
        width: 16px;
        height: 16px;
    }
   .ke-icon-movedown {
        background-image:url(/Resource/movedown.gif);
        width: 16px;
        height: 16px;
    }
View Code

       第四步在Body里添加textarea元素

<div>
        <textarea id="editor_id" name="content" style="width:700px;height:300px;">
         </textarea>
</div>
View Code

      第五步是编写KindEditor脚本,也是难度最大的部分,主要实现的功能就是设置标题,上下左右移动和保存。闲话不说,具体看代码吧。

// 自定义插件
KindEditor.lang({
    settfirst: "设置为一级标题",
    settsecond: "设置为二级标题",
    cancelthead: "取消标题",
    moveup: "向上移动",
    movedown: "向下移动",
    moveleft: "向左移动",
    moveright: "向右移动",
    savedata: "保存"
});
KindEditor.plugin("settfirst", function (K) {
    var self = this, name = "settfirst";
    self.clickToolbar(name, function () {
        table = self.plugin.getSelectedTable();
        if (table) {
            var cell = self.plugin.getSelectedCell();
            if (cell == null) return;
            cell[0].style.cssText = "";
            cell[0].outerHTML = cell[0].outerHTML.replace(/td/g, "th");

        }
    });
});
KindEditor.plugin("settsecond", function (K) {
    var self = this, name = "settsecond";
    self.clickToolbar(name, function () {
        table = self.plugin.getSelectedTable();
        if (table) {
            var cell = self.plugin.getSelectedCell();
            if (cell == null) return;
            cell[0].style.cssText = "font-color:#0000ff;font-size:10px;font-name:隶书";
            cell[0].outerHTML = cell[0].outerHTML.replace(/td/g, "th");


        }
    });
});
KindEditor.plugin("cancelthead", function (K) {
    var self = this, name = "cancelthead";
    self.clickToolbar(name, function () {
        table = self.plugin.getSelectedTable();
        if (table) {
            var cell = self.plugin.getSelectedThead();
            if (cell == null) return;
            cell[0].style.cssText = "";
            cell[0].outerHTML = cell[0].outerHTML.replace(/th/g, "td");

        }
    });
    self.plugin.getSelectedThead = function () {
        return self.cmd.commonAncestor("th");
    };
});
KindEditor.plugin("moveup", function (K) {
    var self = this, name = "moveup";
    self.clickToolbar(name, function () {
        var table = self.plugin.getSelectedTable();
        if (table) {
            var row = self.plugin.getSelectedRow()[0];

            var cells = self.plugin.getSelectedCell();
            if (cells == null)
                cells = self.plugin.getSelectedThead();
            var cell = cells[0];

            var rowIndex = row.rowIndex,
            cellIndex = cell.cellIndex,
            preRowIndex = rowIndex - 1;
            // 第一行不能移动
            if (preRowIndex <= 0) {
                return;
            }
            var prevCell = table[0].rows[preRowIndex].cells[cellIndex];
            if (prevCell.innerHTML != "" && prevCell.innerHTML != "&nbsp;") {
                if (confirm("目标单元格不为空,是否替换?")) {

                }
                else {
                    return;
                }
            }
            prevCell.innerHTML = cell.innerHTML;
            cell.innerHTML = "";

        }
    });
    self.plugin.getSelectedThead = function () {
        return self.cmd.commonAncestor("th");
    };
});
KindEditor.plugin("movedown", function (K) {
    var self = this, name = "movedown";
    self.clickToolbar(name, function () {
        var table = self.plugin.getSelectedTable();
        if (table) {
            var row = self.plugin.getSelectedRow()[0];

            var cells = self.plugin.getSelectedCell();
            if (cells == null)
                cells = self.plugin.getSelectedThead();
            var cell = cells[0];

            var rowIndex = row.rowIndex,
            cellIndex = cell.cellIndex,
            nextRowIndex = rowIndex + 1;
            // 最后一行不能移动
            if (nextRowIndex >= table[0].rows.length) {
                return;
            }
            var nextCell = table[0].rows[nextRowIndex].cells[cellIndex];
            if (nextCell.innerHTML != "" && nextCell.innerHTML != "&nbsp;") {
                if (confirm("目标单元格不为空,是否替换?")) {

                }
                else {
                    return;
                }
            }
            nextCell.innerHTML = cell.innerHTML;
            cell.innerHTML = "";

        }
    });
    self.plugin.getSelectedThead = function () {
        return self.cmd.commonAncestor("th");
    };
});
KindEditor.plugin("moveleft", function (K) {
    var self = this, name = "moveleft";
    self.clickToolbar(name, function () {
        var table = self.plugin.getSelectedTable();
        if (table) {
            var row = self.plugin.getSelectedRow()[0];

            var cells = self.plugin.getSelectedCell();
            if (cells == null)
                cells = self.plugin.getSelectedThead();
            var cell = cells[0];

            var rowIndex = row.rowIndex,
            cellIndex = cell.cellIndex,
            prevCellIndex = cellIndex - 1;
            // 最左一列不能移动
            if (prevCellIndex < 0) {
                return;
            }
            var prevCell = table[0].rows[rowIndex].cells[prevCellIndex];
            if (prevCell.innerHTML != "" && prevCell.innerHTML != "&nbsp;") {
                if (confirm("目标单元格不为空,是否替换?")) {

                }
                else {
                    return;
                }
            }
            prevCell.innerHTML = cell.innerHTML;
            cell.innerHTML = "";

        }
    });
    self.plugin.getSelectedThead = function () {
        return self.cmd.commonAncestor("th");
    };
});
KindEditor.plugin("moveright", function (K) {
    var self = this, name = "moveright";
    self.clickToolbar(name, function () {
        var table = self.plugin.getSelectedTable();
        if (table) {
            var row = self.plugin.getSelectedRow()[0];

            var cells = self.plugin.getSelectedCell();
            if (cells == null)
                cells = self.plugin.getSelectedThead();
            var cell = cells[0];

            var rowIndex = row.rowIndex,
            cellIndex = cell.cellIndex,
            nextCellIndex = cellIndex + 1;
            // 最右一列不能移动
            if (nextCellIndex >= table[0].rows[rowIndex].cells.length) {
                return;
            }
            var nextCell = table[0].rows[rowIndex].cells[nextCellIndex];
            if (nextCell.innerHTML != "" && nextCell.innerHTML != "&nbsp;") {
                if (confirm("目标单元格不为空,是否替换?")) {

                }
                else {
                    return;
                }
            }
            nextCell.innerHTML = cell.innerHTML;
            cell.innerHTML = "";

        }
    });
    self.plugin.getSelectedThead = function () {
        return self.cmd.commonAncestor("th");
    };
});
KindEditor.plugin("savedata", function (K) {
    var self = this, name = "savedata";
    self.clickToolbar(name, function () {

        SaveData();

    });
});
KindEditor.ready(function (K) {
    window.editor = K.create("#editor_id", {
        cssPath: "Style/table.css",
        items: ["source", "settfirst", "settsecond", "cancelthead", "moveup", "movedown", "moveleft", "moveright", "|", "savedata"],
        fullscreenMode: true
    });


});
View Code

        需要说明的是KindEditor可以引用外部样式,我就是用 cssPath: "Style/table.css"来把表格样式固定的,也就是说,在外部定义好Table的css样式,在KindEditor里只需要考虑<tr><td>元素的创建合并,不需要考虑样式问题。

       表格的保存按钮实现也很简单,我这里是用Ajax实现的保存功能,代码如下:

function SaveData() {

            var postData = { mode: "0", data: encodeURIComponent(window.editor.html()) };

            $.ajax({
                type: "post",
                dataType: "text",
                url: RootPath() + "/DataHandler.ashx",//请求保存的服务器目录
                data: postData,
                cache: false,
                async: false,
                success: function (data) {
                    if (data == "ok") {
                        location.href = "ShowPhone.html";
                    }
                },
                error: function (data) {
                    alert("error:" + JSON.stringify(data));
                }
            });
        }
View Code

      其中window.editor.html()是表格的内容,最好用encodeURIComponent函数对内容进行编码,不然到后台接收的时候可能会出现乱码或被拒绝的情况,后台接收到然后在解码即可。我这里用的C#语言,用Uri.UnescapeDataString 方法可实现解码。

        展示页在这里就不介绍了,先引用table的样式文件,再从数据库提取到Table代码,加载到Body里即可。以下是编辑器显示效果。

编辑:侯丁华安

发布:2019-03-22 02:14:14

当前文章:http://www.cnsdbtzg.com/list_90111.html

发现儿童心理健康问题的11个信号 宝宝皮肤过敏日常护理 讨论:奸淫幼女算不算强奸? 公鸭嗓,不成熟,飞机场,周迅到底有啥好? 这一秒,你可以改写人生 你身边那些牛逼的路人甲 你所谓的迷茫,说到底,就是懒! 《欢乐颂》揭秘15条职场“潜规则”!

68044 80188 34289 18598 33533 66979 12799 22680 91386 35072 33830 38922 26637 48243 77745 61102 34735 19728 40783 74226

我要说两句: (0人参与)

发布