能在多種前端框架下使用的表格控件


近幾年Web前端框架特別流行,比如AngularJSAngularJS 2ReactJSKnockoutJSVueJS等。表格控件是我們在開發中經常要用到的控件。有沒有能夠在多種前端控件下都能使用的表格控件?最近研究發現FlexGrid是一款不錯的表格控件,它能支持很多主流的框架。這里主要介紹在純JavaScriptAngularJSFlexGrid的使用。

一、在純JavaScript下使用FlexGrid

HTML文件:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
    
    <!-- Wijmo -->
    <link href="styles/vendor/wijmo.min.css" rel="stylesheet" />
    <script src="scripts/vendor/wijmo.min.js" type="text/javascript"></script>
<script src="scripts/vendor/wijmo.grid.min.js" type="text/javascript"></script>
    <script src="scripts/app.js" type="text/javascript"></script>
    <script src="scripts/FlexGrid.js" type="text/javascript"></script>

</head>
<body>
    <div id="grid">
    </div>
</body>
</html>

1、  引入Wijmo的JS文件和樣式:wijmo.min.css 、wijmo.min.js、wijmo.grid.min.js

2、  引入app.js和FlexGrid.js文件。

3、  定義一個div元素用於顯示Grid

 

App.js文件:

var appData = {
    getData: function (count) {
        var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
            data = new wijmo.collections.ObservableArray();

        for (var i = 0; i < count; i++) {
            data.push({
                id: i,
                country: countries[i % countries.length],
                date: new Date(2014, i % 12, i % 28),
                amount: Math.random() * 10000,
                active: i % 4 === 0
            });
        }
        return data;
    }
}

在app.js中定義appData,其中的getData方法根據傳入的Count產生數據。

 

FlexGrid.js:

(function (wijmo, data) {
    var cv = data.getData(30);
    var grid = new wijmo.grid.FlexGrid('#grid');
    grid.itemsSource = cv;
 })(wijmo, appData);

在FlexGrid.js中調用data.getData(30)獲取數據30個數據。獲得FlexGrid控件,並進行數據綁定。

下面就是運行結果:

 

二、在AngularJS下使用FlexGrid

HTML文件:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
   
    <script src="scripts/vendor/wijmo.min.js"></script>
    <script src="scripts/vendor/wijmo.grid.min.js"></script>
    <script src="scripts/vendor/wijmo.angular.min.js"></script>
    <link rel="stylesheet" href="styles/vendor/wijmo.min.css" />

    <script src="scripts/app.js"></script>
    <script src="scripts/control.js"></script>
</head>
<body ng-app="app" ng-controller="appCtrl">
    <wj-flex-grid items-source="data" >
    </wj-flex-grid>
</body>
</html>

1、  引入angular.min.js

2、  引入Wijmo相關的文件wijmo.min.js、wijmo.grid.min.js、wijmo.angular.min.js、wijmo.min.css

3、  引入app.js和control.js

4、  添加NG指令ng-app、ng-controller

5、  通過wj-flex-grid指令定義表格,並設置數據源

 

app.js文件:

var app = angular.module('app', ['wj']);

 

control.js文件:

app.controller('appCtrl', function ($scope) {

    // generate some random data
    function getData(count) {
        var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
            data = new wijmo.collections.ObservableArray();
        for (var i = 0; i < count; i++) {
            data.push({
                id: i,
                country: countries[i % countries.length],
                date: new Date(2014, i % 12, i % 28),
                amount: Math.random() * 10000,
                active: i % 4 == 0
            });
        }
        return data;
    }
    $scope.data = getData(30);
});

其運行結果和純JS的結果完全一樣。

 

通過上面的兩個示例可以看到無論是在純JS中還是在AngularJS中使用FlexGrid都非常簡單。尤其是在AngularJS框架中通過Wijmo自定義的Angular指令wj-flex-grid使用表格控件很容易。Wijmo支持AngularJSAngularJS 2ReactJSKnockoutJSVueJSIonic等前端框架,就不在一一示例。FlexGrid的功能包括排序、過濾、分組、分頁、單元格合並、凍結、格式化、條件樣式、單元格模板、主題、樹形結構等。

 

源代碼下載

 


免責聲明!

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



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