HTML代码

/*index.cshtml*/

@section styles{
    <style>
        .main {
            margin-top:20px;
        }

        .modal-body .form-group .form-control {
            display:inline-block;
        }
        .modal-body .form-group .tips {
            color:red;
        }
    </style>
}

<div class="main">
    <div id="toolbar" class="btn-group">
        <button id="addProductBtn" type="button" class="btn btn-default" onclick="showAddModal()">
            <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增产品
        </button>
    </div>

    <table id="table"></table>
</div>

<div class="modal fade" id="productModal" tabindex="-1" role="dialog" aria-labelledby="productModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="productModalLabel"></h4>
            </div>
            <div class="modal-body">
                <div class="form-group">
                    <label for="prodId" class="col-md-2">编号:</label>
                    <input type="text" class="form-control" id="prodId" disabled>
                </div>
                <div class="form-group">
                    <label for="prodName" class="col-md-2">名称:</label>
                    <input type="text" class="form-control" id="prodName">
                    <span class="tips" >(最多20个字)</span>
                </div>
                <div class="form-group">
                    <label for="prodTecParam" class="col-md-2">技术参数:</label>
                    <textarea rows=" class="form-control" id="prodTecParam"></textarea>
                    <span class="tips" >(最多150个字)</span>
                </div>
                <div class="form-group">
                    <label for="prodType" class="col-md-2">类型:</label>
                    <select class="form-control" id="prodType">
                        <option value=">普通产品</option>
                        <option value=">明星产品</option>
                    </select>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                <button id="modalSubmitBtn" type="button" class="btn btn-primary">{{modalBtn}}</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal -->
</div>

@section scripts{
    <script type="text/javascript" src="~/Scripts/bootstrap-table.js"></script>
    <script type="text/javascript" src="~/Scripts/bootstrap-table-zh-CN.js"></script>
    <script type="text/javascript" src="~/Scripts/common.js"></script>
    <script type="text/javascript" src="~/Views/Home/index.js"></script>
}

JS代码

/*index.js*/

$(document).ready(function () {
    var $table = $('#table');
    ;    //技术参数默认折叠显示长度

    $table.bootstrapTable({
        locale: 'zh-CN',
        url: '/product/getList',
        method: 'post',
        contentType: 'application/json',
        dataType: "json",
        toolbar: '#toolbar',                //工具按钮用哪个容器
        pagination: true,
        search: true,
        showRefresh: true,
        sidePagination: "server",           //分页方式:client客户端分页,server服务端分页
        singleSelect: true,                 //单行选择
        pageNumber: ,                      //初始化加载第一页,默认第一页
        pageSize: ,                       //每页的记录行数
        pageList: [, , ],
        queryParams: function (params) {    //请求参数
            var temp = {
                pageSize: params.limit,                      //页面大小
                pageNo: ,    //页码
                search: $('.search input').val()
            };

            return temp;
        },
        responseHandler: function (res) {
            return {
                pageSize: res.pageSize,
                pageNumber: res.pageNo,
                total: res.total,
                rows: res.rows
            };
        },
        columns: [
            {
                title: '产品编号',
                field: 'id'
            },
            {
                title: '产品名称',
                width: ,
                field: 'name'
            },
            {
                title: '技术参数',
                field: 'tecParam',
                width: ,
                formatter: tecParamFormatter,
                events: {
                    "click .toggle": toggleText
                }
            },
            {
                title: '类型',
                field: 'type',
                formatter: typeFormatter
            },
            {
                title: '操作',
                formatter: operateFormatter,
                events: {
                    "click .mod": showUpdateModal,
                    "click .delete": deleteProduct
                }
            }
        ]
    });

    function tecParamFormatter(value, row, index) {
        ) {
            , textLength) + '...</span>&nbsp;<a class="toggle" href="javascript:void(0)">展开</a>';
        }
        return value;
    }

    function toggleText(e, value, row, index) {
        if (value == null) {
            return false;
        }

        var $tecParam = $(this).prev(".tec-param"),
            $toggle = $(this);

        ) { //折叠
            $tecParam.text(value.substr(, textLength) + "...");
            $toggle.text("展开");
        }
         && $tecParam.text().length <= textLength + ) {   //展开
            $tecParam.text(value);
            $toggle.text("折叠");
        }
    }

    function typeFormatter(value, row, index) {
        var type = "";
        ")
            type = "普通产品";
        ")
            type = "明星产品";
        return type;
    };

    function operateFormatter (value, row, index) {
        return '<a class="mod btn btn-info" href="javascript:void(0)">修改</a> '
            + '<a class="delete btn btn-danger" href="javascript:void(0)">删除</a>';
    };

    function showUpdateModal (e, value, row, index) {
        $("#productModalLabel").text("更新产品信息");
        $("#modalSubmitBtn").text("更新");

        $("#prodId").val(row.id);
        $("#prodId").attr("disabled", true);    //禁止修改id
        $("#prodName").val(row.name);
        $("#prodTecParam").val(row.tecParam);
        )
            $("#prodType").find('option[value="1001"]').attr("selected", true);
        )
            $("#prodType").find('option[value="1002"]').attr("selected", true);

        $("#modalSubmitBtn").unbind();
        $("#modalSubmitBtn").on("click", updateProduct);

        $("#productModal").modal("show");
    };

    function deleteProduct (e, value, row, index) {
        var product = {
            id: row.id
        };
        if (product.id === null || product.id === "") {
            return false;
        }

        Common.confirm({
            message: "确认删除该产品?",
            operate: function (result) {
                if (result) {
                    $.ajax({
                        type: "post",
                        url: "/product/delete",
                        contentType: "application/json",
                        data: JSON.stringify(product),
                        success: function (data) {
                            if (data !== null) {
                                if (data.result) {
                                    $("#table").bootstrapTable("refresh", { silent: true });
                                    tipsAlert('alert-success', '提示', '删除成功!');
                                }
                                else {
                                    tipsAlert('alert-warning', '提示', '删除失败!');
                                }
                            }
                        },
                        error: function (err) {
                            tipsAlert('alert-danger', '警告', '服务器异常,请稍后再试!');
                            console.log("error:", err.statusText);
                        }
                    });

                    return true;
                }
                else {
                    return false;
                }
            }
        });
    };

    var $search = $table.data('bootstrap.table').$toolbar.find('.search input');
    $search.attr('placeholder', '请输入编号、产品名称、技术参数搜索');
    $search.css(');

    $(".model .form-group input").on("click", function(){
        $(this).next(".tips").text("");
    });
});

var showAddModal = function () {
    $("#productModalLabel").text("新增产品");
    $("#modalSubmitBtn").text("新增");

    $("#prodId").val('');
    $("#prodName").val('');
    $("#prodTecParam").val('');

    $("#modalSubmitBtn").unbind();
    $("#modalSubmitBtn").on("click", addProduct);

    $("#productModal").modal("show");
};

var addProduct = function () {
    var product = {
        name: $("#prodName").val(),
        tecParam: $("#prodTecParam").val(),
        type: $("#prodType").val()
    };
    if (product.name == null || product.name == "") {
        $("#prodName").next(".tips").text("产品名称不能为空!");
        return false;
    }
    ) {
        $("#prodName").next(".tips").text("最多20个字!");
        return false;
    }
    ) {
        $("#prodTecParam").next(".tips").text("最多150个字!");
        return false;
    }

    $.ajax({
        type: "post",
        url: "/product/add",
        contentType: "application/json",
        data: JSON.stringify(product),
        success: function (data) {
            if (data !== null) {
                if (data.result) {
                    $("#table").bootstrapTable("refresh", { silent: true });
                    $("#productModal").modal('hide');
                    $("#prodId").val('');
                    $("#prodName").val('');
                    $("#prodTecParam").val('');
                    tipsAlert('alert-success', '提示', '新增成功!');
                }
                else {
                    tipsAlert('alert-warning', '提示', '新增失败!');
                }
            }
        },
        error: function (err) {
            tipsAlert('alert-danger', '警告', '服务器异常,请稍后再试!');
            console.log("error:", err.statusText);
        }
    });
};

var updateProduct = function () {
    var product = {
        id: $("#prodId").val(),
        name: $("#prodName").val(),
        tecParam: $("#prodTecParam").val(),
        type: $("#prodType").val()
    };
    if (product.name == null || product.name == "") {
        $("#prodName").next(".tips").text("产品名称不能为空!");
        return false;
    }
    ) {
        $("#prodName").next(".tips").text("最多20个字!");
        return false;
    }
    ) {
        $("#prodTecParam").next(".tips").text("最多150个字!");
        return false;
    }

    $.ajax({
        type: "post",
        url: "/product/update",
        contentType: "application/json",
        data: JSON.stringify(product),
        success: function (data) {
            if (data !== null) {
                if (data.result) {
                    $("#table").bootstrapTable("refresh", { silent: true });
                    $("#productModal").modal('hide');
                    $("#prodId").val('');
                    $("#prodName").val('');
                    $("#prodTecParam").val('');
                    tipsAlert('alert-success', '提示', '修改成功!');
                }
                else {
                    tipsAlert('alert-warning', '提示', '修改失败!');
                }
            }
        },
        error: function (err) {
            tipsAlert('alert-danger', '警告', '服务器异常,请稍后再试!');
            console.log("error:", err.statusText);
        }
    });
};

Bootstrap-table使用记录(转)的更多相关文章

  1. bootstrap table 学习记录

    效果: html代码: <!-- 工具容器 --> <div id="toolbar" class="btn-group"> <b ...

  2. BootStrap table使用

    bootstrap table git address https://github.com/wenzhixin/bootstrap-table 引入文件 <link rel="sty ...

  3. bootstrap Table 中给某一特定值设置table选中

    bootstrap Table 中给某一特定值设置table选中 需求: 如图所示:左边地图人员选定,右边表格相应选中. 功能代码: //表格和图标联动 function changeTableSel ...

  4. JS组件系列——表格组件神器:bootstrap table

    前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...

  5. JS组件系列——表格组件神器:bootstrap table(二:父子表和行列调序)

    前言:上篇 JS组件系列——表格组件神器:bootstrap table 简单介绍了下Bootstrap Table的基础用法,没想到讨论还挺热烈的.有园友在评论中提到了父子表的用法,今天就结合Boo ...

  6. JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  7. JS组件系列——Bootstrap Table 表格行拖拽

    前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到 ...

  8. 后台系统组件:一丶bootstrap table

    http://www.cnblogs.com/landeanfen/p/4976838.html (bootstrap table) http://www.cnblogs.com/landeanfen ...

  9. .Net MVC+bootstrap Table学习

    一.效果展示 二.使用方法 1).相关css和js的引用 <link href="~/Themes/Bootstrap/css/bootstrap.css" rel=&quo ...

  10. 161222、Bootstrap table 服务器端分页示例

    bootstrap版本 为 3.X bootstrap-table.min.css bootstrap-table-zh-CN.min.js bootstrap-table.min.js 前端boot ...

随机推荐

  1. 实验楼 1. k-近邻算法实现手写数字识别系统--《机器学习实战 》

    首先看看一些关键词:K-NN算法,训练集,测试集,特征(空间),标签 举实验楼中的样例,通俗的讲讲K-NN算法:电影有两个分类(标签)-动作片-爱情片.两个特征--打斗场面--亲吻画面. 将那些数字和 ...

  2. QT QT creator QTsdk的区别

    Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程. QT Creator 跨平台 ...

  3. Java综合题目

    分支, 循环, 数据类型 1, 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2, 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... ...

  4. python-继承类执行的流程

    在读python数据机构与算法, 发现了下面这个例子, 之前没有碰到过, 记录下来 In [17]: class A: def f(self): self.g() def g(self): print ...

  5. 最大流当前弧优化Dinic模板

    最大流模板: 普通最大流 无向图限制:将无向图的边拆成2条方向相反的边 无源汇点有最小流限制的最大流:理解为水管流量形成循环,每根水管有流量限制,并且流入量等于流出量 有源汇点的最小流限制的最大流 顶 ...

  6. window.settimeout用法与window.setInterval用法的区别

    setTimeout 和setInterval的功能都是经过某一个时间段后发生某件指定的事件或者方法. window.setTimeout方法是定时程序,也就是在某时间以后干什么, window.se ...

  7. 搭建ElasticSearch+MongoDB检索系统

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  8. HTML indexedDB数据库—简单示例

    indexedDB数据库的基本概念:在HTML5中,新增一种被称为"indexedDB"的数据库,该数据库是一种存储在客户端本地的NoSQL数据库. <!DOCTYPE ht ...

  9. Java入门——(6)集合

       关键词:Collection接口.Map接口.Iterator接口.泛型.Collections工具类.Arrays工具类   一.集合概述      当数据多了需要存储,需要容器,而数据的个数 ...

  10. mysql数据库密码更改

    先记下,随后继续更改! 方法1: 用SET PASSWORD命令 首先登录MySQL. mysql> set password for 用户名@localhost = password('新密码 ...