Flexigrid系列使用教程(一)前臺代碼及參數說明

本教程從零開始介紹Flexigrid的使用方法,記錄了作者學習中的點點滴滴,實例主要是在.net mvc框架下實現的,廢話不多說了,先看一下Flexigrid的效果圖吧。

 一、首先簡單介紹一下flexigrid:

1、主要特性:

Flexigrid是Jquery家族中table類或grid類的一員,主要特性如下:

* 列可伸縮
高度可調整
可按照表頭排序
很酷的外觀風格
能夠轉換一個普通的表格
可以連接到一個ajax方式的數據源(僅是xml格式)
分頁功能
顯示/隱藏 列
提供可供外部訪問的API
* 更多更多

Google group 上的介紹:輕量級但功能豐富的data grid插件,支持列伸縮和排序功能,可採用ajax的方式連接到一個xml的數據源來獲取所需數據,和Ext Grid非常相似,但它是純jquery的,這使得它更加小巧,並遵循jquery插件一貫的少量配置特性

2.如何獲取flexigrid?
既然官網已經無法訪問,那就去其他途經吧,在上面提到的jquery站點和Google group站點都可以找到下載鏈接,如果仍然無法搞定,那麼pm我吧:)
3.我想觀看一下Demo先
嗯,不錯的習慣,畢竟同類插件已經挺多的了,也不乏jqgrid這樣的強悍者,還是貨比三家先吧。Google group上提供的各個後臺語言版本的Demo:
php 版本的 by Kevin Kietel: http://sanderkorvemaker.nl/test/flexigrid/ 
CodeIgniter 
版本的 by Armorfist: http://flexigrid.eyeviewdesign.com/ 
ASP 
版本的 by Synergiq: http://jamesowers.co.uk/asp-tutorials/57/flexigrid-with-asp/ 
Ruby on Rails 
版本的 by Nick Fessel: http://www.nickfessel.com/index.php?post=17

二、具體使用方法

       簡單說明:使用時首先需要引用jquery.js和flexigrid.js兩個Js庫,因爲是Jquery插件所以Jquery庫是不可少的。

下面是一個完整的代碼:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Dialog.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Kwstu.Model.DESYS_STANDEVICE>>" %>

 

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

        <script type="text/javascript">

            $(document).ready(function () {

                //重新定義表格大小,使flexigrid隨瀏覽器大小改變而改變

                $(window).resize(function () {

                    var w = $("#content_right").width() - 20;

                    var gh = $("#content_right").height() - 86;

                    $("#grdProList").flexResize(w, gh);

                });

                //定義高度和寬帶,此處是根據本頁面的模板來的

                var maiheight = document.documentElement.clientHeight;

                var w = $("#content_right").width() - 20;

                var gh = $("#content_right").height() - 86;

                var grid = $("#grdProList").flexigrid

          ({

              url: '/BDeviceApply/GetSysSdandeviceFlex',//獲取數據的方法

              dataType: 'json',

              colModel: [

                   { display: '列1標題', name: '字段1', sortable: true, width: 150, align: 'center' },

                   { display: '列1標題', name: '字段2', sortable: true, width: 80, align: 'center' },

                   { display: 列1標題', name: '字段3', sortable: true, width: 80, align: 'center' },

                   { display: '列1標題', name: '字段4', sortable: true, width: 80, align: 'center' }

                  ],

              ShowToggleCol: true,

              singleSelect: true,

              sortname: 'ID',

              sortorder: 'DESC',

              usepager: true,

              striped: true,

              title: '設備標準庫信息列表',

              useRp: true,

              rp: 20,

              rpOptions: [10, 20, 40, 100],

              usepager: true,

              showTableToggleBtn: true,

              showcheckbox: true,

              width: w,

              height: gh,

              pagestat: '顯示{from} 到 {to}, 共2 {total} 條',

              procmsg: '請等待數據正在加載中…',

              nomsg: '沒有數據',

              onError: '查詢出錯請刷新'

          });

            });

    </script>

    <table id="grdProList" style="display: none;">

    </table>

</asp:Content>

 

<asp:Content ID="Content2" ContentPlaceHolderID="menutop" runat="server">

</asp:Content>

 

<asp:Content ID="Content3" ContentPlaceHolderID="menubottem" runat="server">

</asp:Content>

以上是在.NET MVC項目中的代碼,不同技術下的獲取數據的方法可能不能,具體方法代碼後面介紹,以上就是一個很簡單的沒有數據源的flexigrid的小實例。

三、flexigrid詳細參數介紹

1、flexigrid參數說明:
    height: 200, //flexigrid插件的高度,單位爲px
    width: 'auto', //寬度值,auto表示根據每列的寬度自動計算,在IE6下建議設置具體值否則會有問題

    striped: true, //是否顯示斑紋效果,默認是奇偶交互的形式
    novstripe: false,//沒用過這個屬性
    minwidth: 30, //列的最小寬度
    minheight: 80, //列的最小高度
    resizable: false, //resizable table是否可伸縮
    url: false, //ajax url,ajax方式對應的url地址
    method: 'POST', // data sending method,數據發送方式
    dataType: 'json', // type of data loaded,數據加載的類型,xml,json
    errormsg: '發生錯誤', //錯誤提升信息

    usepager: false, //是否分頁
    nowrap: true, //是否不換行
    page: 1, //current page,默認當前頁
    total: 1, //total pages,總頁面數
    useRp: true, //use the results per page select box,是否可以動態設置每頁顯示的結果數
    rp: 25, // results per page,每頁默認的結果數
    rpOptions: [10, 15, 20, 25, 40, 100], //可選擇設定的每頁結果數
    title: false, //是否包含標題
    pagestat: '顯示記錄從{from}到{to},總數 {total} 條', //顯示當前頁和總頁面的樣式
    procmsg: '正在處理數據,請稍候 ...', //正在處理的提示信息
    query: '', //搜索查詢的條件
    qtype: '', //搜索查詢的類別
    qop: "Eq", //搜索的操作符
    nomsg: '沒有符合條件的記錄存在', //無結果的提示信息
    minColToggle: 1, //允許顯示的最小列數
    showToggleBtn: true, //是否允許顯示隱藏列,該屬性有bug設置成false點擊頭腳本報錯。
    hideOnSubmit: true, //是否在回調時顯示遮蓋
    showTableToggleBtn: false, //是否顯示【顯示隱藏Grid】的按鈕
    autoload: true, //自動加載,即第一次發起ajax請求
    blockOpacity: 0.5, //透明度設置
    onToggleCol: false, //當在行之間轉換時,可在此方法中重寫默認實現,基本無用
    onChangeSort: false, //當改變排序時,可在此方法中重寫默認實現,自行實現客戶端排序
    onSuccess: false, //成功後執行
    onSubmit: false, // 調用自定義的計算函數,基本沒用      
    //Style
    gridClass: "bbit-grid"//樣式
         
}, p);
----------------------------------------------------------------------------------------------
2、支持ajax跨域:

    url中加callback=?
    後臺獲得callback函數的名字

    返回json數據格式爲:print(callbackName+"("+jsonString+")");
----------------------------------------------------------------------------------------------
3、Flexigrid(HUGO.CM修改版v1.1)使用說明:

    1、加載flexigrid。p:選項參數集合
        $(“”).flexigrid(p);
    2
、重新加載數據。
        $(“”).flexReload(p);
    3
、更改flexigrid參數。P:選項參數集合
        $(“”).flexOptions (p);
    4
、隱藏/顯示列。cid:列索引,visible:bool
        $(“”).flexToggleCol (cid, visible);
    5、綁定數據。Data:數據源

        $(“”).flexAddData (data);
    6
、no select plugin by me 。不知道做什麼用的
        $(“”).noSelect (p);
    7
、重新指定寬度和高度。
        $(“”).flexResize(w,h);
    8
、翻頁。type:first、prev、next、last、input
        $(“”).changePage(type);
----------------------------------------------------------------------------------------------
4、Flexigrid——colModel:

    屬性名    類型    描述
    display    string    顯示的列名
    name    string    綁定的列名
    sortable bool    是否可以排序
    align    string    對其方式
    width    int    列的寬度
    hide    bool    是否隱藏該列
    pk    bool    是否爲主鍵標識、如果是則隱藏該列,值存入隱藏域中
    process    function   
    customValue function    
自定義顯示值。(如性別:數據庫爲Bit類型,通過customValue方法返回“男/女”)參數:value,i
----------------------------------------------------------------------------------------------
5、Flexigrid——事件

    事件名        參數                    描述            返回值
    onDragCol    dcoln,dcolt                拖動列後觸發         無
    onToggleCol    cid,visible                隱藏/顯示列後觸發    無
    onChangeSort    sortname,sortorder            自定義排序事件        無
    onChangePage    newp                    自定義翻頁事件        無
    onSuccess    無                    數據獲取成功時觸發    無
    onError        XMLHttpRequest,textStatus,errorThrown   出現錯誤時觸發        無
    onSubmit    無                    在獲取數據前時觸發    bool
    onRowSelect    this                    行選中事件        無

----------------------------------------------------------------------------------------------
6
、Flexigrid——buttons
    屬性名        類型        描述
    name        string        按鈕名稱
    bgclass        string        樣式
    onpress        function    點擊觸發的方法
    separator    bool        分割線
----------------------------------------------------------------------------------------------
7
、Flexigrid——searchitems
    屬性名        類型        描述
    display        string        搜索類型下拉列表框:顯示的列名
    name        string        搜索類型下拉列表框:綁定的列名
    isdefault    bool        是否爲默認搜索類型

    //注:如果searchitems:true,則自動根據所有字段生成下拉列表框


from:http://www.kwstu.com/ArticleView/lydia_201210312039334

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章