Javascript - ExtJs - 資料

來源:互聯網
上載者:User

標籤:font   不一致   12px   多個   request   class   頭部   非同步   樣本   

Ext.data命名空間

有關資料存放區、讀取的類都定義在Ext.data命名空間中。Ext的gridPanel、combobox的資料來源都是來自Ext.data提供的類。該命名空間下的類支援A數組、Json和xml資料。

 

Ext.data.Connection

此類封裝了Ajax,提供比傳統Javascript非同步傳輸資料更為簡潔的方法,相容了所有瀏覽器。它負責與服務端實現非同步互動,並把從服務端的資料轉交給Ext.data.Proxy進行處理。以下代碼建立connection執行個體,並配置好它的各個參數,使用request向伺服器發起請求並接收服務端的反饋。

配置.config 

url : String //請求的url。extraParams : Object | String //請求傳遞的參數。如果配置在request方法中,此屬性要改為paramsmethod : ‘GET‘ | ‘POST‘ //請求的方式。callback : function //請求完成後的回呼函數,無論是成功還是失敗,都會執行。success : function //請求成功時的回呼函數。failure : function //請求失敗時的回呼函數scope : Object //回呼函數的範圍。form : Object | String //綁定的form表單。isUpload : bool //是否執行檔案上傳。headers : Object //請求的頭部資訊。xmlData : Object //XML文檔對象,可通過URL附加參數的方式發起請求。disableCaching : bool //是否禁用緩衝,預設禁用。
配置.config

方法.method

request(config) //發起請求並接收遠程反饋,Ext.data.Connection的配置全部可寫在request的配置中,區別在於extraParams要改為params。abort( [ TransactionId ] )TransactionId : 事務ID//當同時有多個請求發生時,根據指定的事務id放棄其中的某一個請求。如果不指定事務id,則放棄最後一個請求。isLoading( [ TransactionId  ] )//根據事務id判斷對應的請求是否完成。如果未指定事務id,就判斷最後一個請求是否完成。
方法.method

 樣本.example

<script type="text/javascript">    Ext.onReady(function () {        var conn = new Ext.data.Connection();        //發起請求並接收遠程反饋        conn.request({            method: ‘GET‘,//請求方式            timeout: 300,//請求逾時時間            autoAbort: false,//是否自動取消連結            disableCaching: false,//是否禁用緩衝            //請求的網址的頭部            defaultHeaders: { referer: ‘http://localhost:6524/‘ },            //請求的網址            url: ‘AjaxFormHandler.ashx‘,            //請求附帶的參數            params: {                name: ‘sam‘            },            success: function (response) {                //將遠程反饋的Json字元解析為Json對象                var m = Ext.JSON.decode(response.responseText);                Ext.Msg.alert(‘success‘,m.msg );            },            failure: function () {                Ext.Msg.alert(‘error‘, ‘http錯誤‘);            }        });    });</script>
樣本.example

服務端的AjaxFormHandler.ashx:

 

Ext.data.Model

表示資料模型,就像一張資料庫的空表,可定義欄位。如果你要建立自己的資料模型,就需要使你的類派生於Ext.data.Model。建立自訂資料模型的執行個體後,你就可以插入資料了。 Ext.data.Record是Ext.data.Model的別名,建立資料模型建議使用Model而不是Record。

建立資料模型並擷取

<script type="text/javascript">        Ext.onReady(function () {                        //建立表            Ext.define("employee", {                extend: "Ext.data.Model",                fields: [                    { name: "employeeName", type: "string" },                    { name: "age", type: "int", convert: null },                    { name: "gender", type: "int" },                    { name: "IsMarried",type:"boolean",defaultValue:true,convert:null}                ]            });            //建立執行個體,插入資料            //執行個體名不能與類名相同,否則無效            var user = new employee({                employeeName: "sam",                age: 32,                gender: 0,                IsMarried:false            });            var br = "<br>";            //資料訪問方式有以下幾種,任選            var record = user.get("employeeName") + br + user.data["age"] + br + user.data.gender + br + user.data.IsMarried;            Ext.MessageBox.alert("", record);                    });    </script>
建立資料模型並擷取

修改資料

不建議使用data屬性修改記錄,應使用set訪問器。因為set方法可以判斷值是否與之前的資料不一致,不一致將被視為新值,修改值之前它會將舊值取出來存入modified屬性中以便你可能用得上。

//修改資料user.data.employeeName = "korn";//不建議這樣寫user.data["employeeName"] = "korn";//不建議這樣寫user.set("employeeName", "korn");//建議這樣寫Ext.MessageBox.alert("", user.get("employeeName"));
修改資料

方法.method 

commit()//提交資料,調用此方法後,會清空modified並將drity設為false。reject()//撤銷修改,把修改後的資料還原為modified中儲存的值再清空modified並將drity設為false。getChanges()//擷取修改的資料並封裝成Json對象返回。isModified()//測試資料是否被修改。copy()//忽略drity和modified,將記錄複製一份。此類的方法、屬性多數與Ext.data.Store有關,詳情可查詢API。
方法.method

 

Ext.data.Store

資料互動中介者,它負責對資料進行排序、分組、分頁、搜尋並將資料提供給gridPanel、treePanel和combobox使用。而它的資料來源可以是二維數組

 

Javascript - ExtJs - 資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.