bootstrap框架學習(一)


  進入主題之前先說一段我學習bootstrap的歷程:因客戶需要,公司需要把系統的某個模塊從系統中獨立出來,並且這個任務由我負責,這樣一來這個新做的(小)系統應該不太復雜,而恰好我最近對bootstrap有那么一點了解(去官網看了下,很高大上),所以我就用了(因為之前的系統使用jQuery-easyUI,我覺得它性能比較差)bootstrap。不過,做了一周后我發現,bootstrap滿足不了我的需求,它更適合普通的網頁,easyUI中有的好多控件都沒有,比如:表單的異步提交、confirm彈出框、alert彈出框等等。雖然這樣,我還是繼續用了下去,因為它做出來的頁面比較“高大上”,哈哈。最后,我又加入了jqueryUI的許多控件才終於完成了任務。

  最后,說一下我對easyUI和bootstrap的理解,如果有不對的地方,還請大家指出來。對於easyUI,我用的時間加在一起應該有差不多2年的時間,我覺得它的特點就是功能強大,操作簡單,企業項目中用到的所有控件幾乎都有,這一點很強大。不過,對於它的性能確實不太好,我在IE8和更低版本中用過,頁面加載慢,特別是數據量多的,一個頁面出來要好幾秒鍾的時間,我記得我們還花了好長時間來做這一塊的優化。而對於bootstrap,我這個初學者對使用過它之后的感受是做的頁面漂亮,更適合應用在普通的網頁上。當然,我在瀏覽網頁時也看到一些水友說可以將easyUI與bootstrap結合起來使用,我感覺這也許是一個不錯的選擇,呵呵。

 

一、表格

$(function(){
    
    /*$.ajaxSetup({
        async: false
    });*/
    
    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的點擊事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
});

var TableInit = function(){
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function(){
        $('#tb_data').bootstrapTable({
            url: '/publish/getProjectList',            //請求后台的URL(*)
            method: 'get',                             //請求方式(*)
            dataType: 'json',                          
            toolbar: '#toolbar',                       //工具按鈕用哪個容器
            striped: false,                            //是否顯示行間隔色
            cache: false,                              //是否使用緩存,默認為true,所以一般情況下需要設置一下這個屬性(*)
            pagination: true,                          //是否顯示分頁(*)
            showPaginationSwitch: false,               //是否顯示分頁數
            sortable: false,                           //是否啟用排序
            sortOrder: "asc",                          //排序方式
            queryParams: oTableInit.queryParams,       //傳遞參數(*)
            queryParamsType: '',                       //如果要在oTableInit.queryParams方法獲取pageNumber和pageSize的值,需要將此值設置為空字符串(*)
            sidePagination: 'server',                  //分頁方式:client客戶端分頁,server服務端分頁(*)
            pageNumber: 1,                             //初始化加載第一頁,默認第一頁
            pageSize: 10,                              //每頁的記錄行數(*)
            pageList: [10, 20, 30],                    //可供選擇的每頁的行數(*)
            search: false,                             //是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端,所以,個人感覺意義不大
            strictSearch: true,                       
            showColumns: true,                         //是否顯示所有的列
            showRefresh: true,                         //是否顯示刷新按鈕
            minimumCountColumns: 2,                    //最少允許的列數
            clickToSelect: true,                       //是否啟用點擊選中行
            singleSelect: true,
            height: $(window).height()-140,            //行高,如果沒有設置height屬性,表格自動根據記錄條數覺得表格高度
            uniqueId: "ID",                            //每一行的唯一標識,一般為主鍵列
            showToggle: true,                          //是否顯示詳細視圖和列表視圖的切換按鈕
            cardView: false,                           //是否顯示詳細視圖
            detailView: false,                         //是否顯示父子表
            paginationPreText: "上一頁",
            paginationNextText: "下一頁",
            columns: [{
                checkbox:true
            }, {
                field: 'index',
                width: 35,
                formatter : function(value, row, index) {
                    // 在源代碼中加入getPage方法
                    var page = $('#tb_data').bootstrapTable("getPage");
                    return page.pageSize * (page.pageNumber - 1) + index + 1;
                }
            }, {
                field: 'id',
                title: '任務ID',
                align: 'center'
            }, {
                field: 'description',
                title: '描述',
                align: 'center'
            }, {
                field: 'statusName',
                title: '狀態',
                align: 'center'
            }, {
                field: 'releaseDate',
                title: '發布時間',
                align: 'center'
            }, {
                field: 'gmtCreate',
                title: '創建時間',
                align: 'center'
            }, {
                field: 'creatorCn',
                title: '創建人',
                align: 'center'
            }, {
                field: 'releaseTime',
               // title: '發布日期',
                visible: false
            }, {
                field: 'descriptionCheck',
               // title: '描述類型',
                visible: false
            }],
            onDblClickRow:function(row, $element){
                var url = '/publish/intoProjectInfoPage?projectId='+row.id;
                window.open(url);
            },
            onClickRow:function(row, $element, field){
                if(row.statusName!='待審核' && row.statusName!='准備提測'){
                    $('#deleteBtn').prop("disabled", true);
                }else{
                    $('#deleteBtn').prop("disabled", false);
                }
            }
        });
    };
    
    //得到查詢的參數
    oTableInit.queryParams = function(params) {
     // 特別說明:
     // 如果queryParamsType=limit,params包含{limit, offset, search, sort, order}
     // 如果queryParamsType!=limit,params包含{pageSize, pageNumber, searchText, sortName, sortOrder}
var temp = { //這里的鍵的名字和控制器的變量名必須一直,這邊改動,控制器也需要改成一樣的 pageSize: params.pageSize, //頁面大小 pageNumber: params.pageNumber //頁碼 }; return temp; }; return oTableInit; }; var ButtonInit = function () { var oInit = new Object(); oInit.Init = function () { //初始化頁面上面的按鈕事件 $('#saveProjectBtn').click(function(){ });   $('#addBtn').click(function(){   });   // 編輯任務按鈕點擊事件   $('#editBtn').click(function(){    });   // 刪除任務按鈕點擊事件   $('#deleteBtn').click(function(){    var arr = $('#tb_data').bootstrapTable('getSelections');   if(arr.length>0){ confirmMessage('確定刪除此任務嗎?', deleteTask);   }else{ alertMessage("請選擇一條數據");   }    });
  };
  return oInit; 
};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM