• 利用bootstrap和webform的异步CRUD及分页


    综合练习 html代码 异步CRUD


    一直以来对异步不是很熟悉,今天一天都用来练习异步的增删改查,熟悉并巩固基础知识,期间遇到一些问题,很烦,不过都解决了。这个东西用时几个小时,终极目标是在半个小时之内把这套弄完。以下是代码仅供自己记录,以便在后面继续练习的时候,作参考。顺便提一句!基础真的他妈的很重要!所以,下周把产品弄上线后,再把cs代码贴上来,然后捣鼓捣鼓数据库。


    先上最终效果图
    a、经过正确分页的主页面
    看不到 怪我咯!(●'◡'●)!

    b、增加模态框(编辑模态框也差不多,只不过里面是嵌套的iframe)
    看不到 又怪我咯!(●'◡'●)!

    c、增加、编辑、删除成功后弹出的模态框(之前一直对添加成功后先弹个框框出来然后再慢慢消失感兴趣,现在自己终于搞定咯!嘿嘿嘿,(●'◡'●))
    很蓝受!


    1、整个单页文件

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    	<meta charset="utf-8" />
        <link href="../Content/bootstrap.min.css" rel="stylesheet" />
        <link href="../Content/tablecloth.css" rel="stylesheet" />
        <script src="../Scripts/jquery-3.1.1.min.js"></script>
        <script src="../Scripts/bootstrap.min.js"></script>
        <script src="../Scripts/tablecloth.js"></script>
        <script type="text/javascript">
            $(function () {
                InitTable();
                //绑定添加事件按钮
                bindAddClickEvent();
            });
            function InitTable(postData) {
                $.ajax({
                    url: "/Handler/StudentList.ashx",
                    data: postData,
                    dataType:"json",
                    type: "POST",
                    success: function (data) {
                        $("#tbBody").html("");
                        for (var key in data.StudentList) {
                            var str = "<tr>";
                            str += "<td>" + data.StudentList[key].id + "</td>";
                            str += "<td>" + data.StudentList[key].name + "</td>";
                            str += "<td>" + data.StudentList[key].year + "</td>";
                            str += "<td>" + data.StudentList[key].classid + "</td>";
                            str += "<td><a class='btn btn-info detailLink' href='#' sid='" + data.StudentList[key].id + "'>详情</a>";
                            str += "<a class='btn btn-success editLink' href='#' sid='" + data.StudentList[key].id + "'>编辑</a>";
                            str += "<a class='btn btn-danger deleteLink' href='#' sid='" + data.StudentList[key].id + "'>删除</a></td>";
                            str += "</th>";
    
                            $("#tbBody").append(str);
                        }
    
                        //以下点击事件一定是异步加载完数据后才能绑定的,毫无疑问,知道吗傻逼
    
                        //分页标签加入页脚
                        $("#navHtml").html(data.NavHtml);
    
                        //绑定分页标签点击事件(这个必须要这样,如果不这个样,永远只显示第一页,很伤!)
                        bindNavClickEvent();
    
                        //绑定详情点击事件
                        bindDetailLinkClickEvent();
    
                        //绑定编辑点击事件
                        bindEditLinkClickEvent();
    
                        //绑定删除点击事件
                        bindDeleteLinkClickEvent();
                    }
                });
            }
            //绑定分页标签点击事件
            function bindNavClickEvent() {
                $(".pageLink").click(function () {
                    var href = $(this).attr("href");
                    var postData = href.substr(href.lastIndexOf("?") + 1);
                    InitTable(postData);
                    return false;
                })
            }
    
            //绑定详情点击事件
            function bindDetailLinkClickEvent() {
    
            }
    
            //绑定编辑点击事件
            function bindEditLinkClickEvent() {
                $(".editLink").click(function () {
                    var txtId = $(this).attr("sid");
                    $("#EditFrame").attr("src", "/Handler/EditStudent.aspx?txtId=" + txtId);
                    $("#EditModal").modal('show');
    
                    //点击提交子页面中的内容
                    $("#edit").click(function () {
                        var domFrame = $("#EditFrame")[0];
                        //调用子页面中的submitFrame方法
                        domFrame.contentWindow.submitFrame();
                    })
                });
            }
    
            //子页面中修改成功后来调用父页面中的方法
            function afterEditSuccess() {
                $("#EditModal").modal('hide');
                var str = "<p class='label label-success'>修改成功</p>"
                $("#successModal11").html("").append(str);
                $("#successModal").modal('show');
                setTimeout(function () {
                    $("#successModal").modal('hide');
                }, 1000);
                setTimeout(function () {
                    InitTable();
                }, 1000);
            }
    
            //绑定删除点击事件
            function bindDeleteLinkClickEvent() {
                $(".deleteLink").click(function () {
                    var id=$(this).attr("sid");
                    $.get("/Handler/DeleteStudent.ashx", { txtId: id }, function (data) {
                        if (data == "ok") {
                            var str = "<p class='label label-success'>删除成功!</p>";
                            $("#successModal11").html("").append(str);
                            $("#successModal").modal('show');
                            setTimeout(function () {
                                $("#successModal").modal('hide');
                            }, 1000);
                            setTimeout(function () {
                                InitTable();
                            }, 1000);
                        } else {
                            alert("删除失败。");
                        }
                    });
                });
            }
    
            //绑定添加事件
            function bindAddClickEvent() {
                $("#add").click(function () {
                    $.ajax({
                        url: "/Handler/AddStudent.ashx",
                        data: {
                            txtName: $("#txtName").val(),
                            txtYear: $("#txtYear").val(),
                            txtClassId:$("#txtClassId").val()
                        },
                        type: "POST",
                        success: function (data) {
                            if (data == "ok") {
                                //添加成功,将框里的内容改变为成功,然后再消失
                                var str = "<h1 class='label label-success label-lg'>添加成功</h1>"
                                //模态框自动关闭
                                $("#AddModal").modal('toggle');
                                $("#successModal11").html("").append(str);
                                $("#successModal").modal('show');
                                setTimeout(function () {
                                    $("#successModal").modal('hide');
                                }, 1000);
                                setTimeout(function () {
                                    InitTable();
                                }, 1000);
                            } else {
                                alert("添加失败!");
                            }
                        }
                    })
                })
            }
        </script>
    </head>
    <body>
        <!-- 增加学生Button -->
        <button type="button" class="btn btn-primary pull-right" data-toggle="modal" data-target="#AddModal">
            点击增加学生
        </button>
    
        <table>
            <thead>
                <tr>
                    <th>学生编号</th>
                    <th>学生姓名</th>
                    <th>学生年龄</th>
                    <th>学生班级</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody id="tbBody"></tbody>
        </table>
        <div id="navHtml"></div>
    
    
        <!-- 编辑Modal -->
        <div class="modal fade" id="EditModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
            <div class="modal-dialog" style="100%" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="myModalLabel">编辑学生基本信息</h4>
                    </div>
                    <div class="modal-body" id="EditDiv">
                        <iframe src="javascript:void(0)" id="EditFrame" width="100%" height="100%" frameborder="0"></iframe>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        <button type="button" id="edit" class="btn btn-primary">Save changes</button>
                    </div>
                </div>
            </div>
        </div>
    
        <!-- 增加Modal -->
        <div class="modal fade" id="AddModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
               <div class="modal-dialog" role="document">
                   <div class="modal-content">
                       <div class="modal-header">
                           <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                           <h4 class="modal-title" id="myModalLabel">添加学生</h4>
                       </div>
                       <div class="modal-body" style="100%;overflow:auto;">
                           <table class="table table-bordered">
                               <thead>
                                   <tr class="info">
                                       <th>学生姓名</th>
                                       <th>学生年龄</th>
                                       <th>学生班级</th>
                                   </tr>
                               </thead>
                               <tbody>
                                   <tr>
                                       <td><input type="text" id="txtName" /> </td>
                                       <td><input type="text" id="txtYear" /> </td>
                                       <td><input type="text" id="txtClassId" /> </td>
                                   </tr>
                               </tbody>
                           </table>
                       </div>
                       <div class="modal-footer">
                           <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                           <button type="submit" id="add" class="btn btn-primary">Save changes</button>
                       </div>
                   </div>
               </div>
           </div>
    
        <!-- 弹出成功div -->
        <!-- Modal -->
        <div class="modal fade" id="successModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="myModalLabel">返回消息</h4>
                    </div>
                    <div id="successModal11" class="modal-body">
                        
                    </div>
                </div>
            </div>
        </div>
    </body>
    </html>
    
    
    

    2、编辑窗体的代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EditStudent.aspx.cs" Inherits="WebApplication1.Handler.EditStudent" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <link href="../Content/bootstrap.min.css" rel="stylesheet" />
        <script src="../Scripts/jquery-3.1.1.min.js"></script>
        <script src="../Scripts/bootstrap.min.js"></script>
        <script>
            function submitFrame() {
                var formParam = $("#form1").serializeArray();//序列化表格内容为字符串 
               
                $.ajax({
                    url: "/Handler/EditStudent.aspx",
                    data: formParam,
                    type: "POST",
                    success: function (data) {
                        if (data == "ok") {
                            window.parent.window.afterEditSuccess();
                        } else {
                            alert("修改失败!");
                        }
                    }
                })
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <table class="table table-bordered">
                    <thead>
                        <tr class="info">
                            <th>学生编号</th>
                            <th>学生姓名</th>
                            <th>学生年龄</th>
                            <th>学生班级</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td><%= Student.id%><input type="hidden" name="txtId" value="<%= Student.id %>" /></td>
                            <td>
                                <input type="text" name="txtName" value="<%=Student.name%>" /></td>
                            <td>
                                <input type="text" name="txtYear" value="<%= Student.year%>" /></td>
                            <td>
                                <input type="text" name="txtClass" value="<%= Student.classid%>" /></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </form>
    </body>
    </html>
    
    
  • 相关阅读:
    go1.13 mod 实践和常见问题
    etcd 添加用户,授权特定目录
    golang 你所不知道的 log 和 fmt
    redis 原理系列之--字符串存储的实现原理(1)
    golang 写文件--详细解释
    面向对象范式的核心本质是?---不是继承 不是封装也不是多态
    关于自控力和拖延 的一点分享--《自控力》
    Linux 精确判断是否同一文件--及终端获取字符串md5 的值
    ARM版本及系列
    技术团队塑造
  • 原文地址:https://www.cnblogs.com/xuxuzhaozhao/p/6535327.html
Copyright © 2020-2023  润新知