本教程將以XML為數(shù)據(jù)源,帶你進(jìn)入Grid的世界。
本文涉及的范例代碼,可以在這里下載。一個(gè)完成好的例子可在這里找到。
步驟一 定義數(shù)據(jù)(Data Definition)
首先要讓Grid知道XML文檔定義了每一行是什么數(shù)據(jù)。正如所見,我們命名了"item"在下面的XML樣本中。
單行的XML樣本數(shù)據(jù)
<Item> <ASIN>0446613657</ASIN> <DetailPageURL>http://www.amazon[*SNIP*]JVQEG2</DetailPageURL> <ItemAttributes> <Author>Sidney Sheldon</Author> <Manufacturer>Warner Books</Manufacturer> <ProductGroup>Book</ProductGroup> <Title>Are You Afraid of the Dark?</Title> </ItemAttributes> </Item>
接著需要定義某一列為“統(tǒng)一標(biāo)識(shí)(Unique Identifier)”,即ID,根據(jù)“id"所設(shè)置的那個(gè)節(jié)點(diǎn)來讀取值(樣本代碼第九行)。本例中的樣本數(shù)據(jù)是”ASIN"列。
數(shù)據(jù)定義的最后部分就是指定你需要顯示的字段(Fields),把這些字段放到一個(gè)數(shù)組之中,并保證這些字段與你的XML數(shù)據(jù)中元素名稱是一致的,而且還要注意先后順序,這里的順序不需要和XML文件中順序一致。
var dataStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: 'sampledata-sheldon.xml'}), reader: new Ext.data.XmlReader({ record: 'Item', id: 'ASIN' }, [ 'Author', 'Title', 'Manufacturer', 'ProductGroup' ]) });
步驟二 列模型(Column Model)
下一步便是定義Column Model 列模型。簡(jiǎn)單地說,就是通過一些屬性的設(shè)置,決定每一列怎么控制或怎么顯示,這是一個(gè)由每列的配置參數(shù)組成的數(shù)組。注意,出現(xiàn)的順序應(yīng)該與剛才定義“字段”的數(shù)組一致。較常見的參數(shù)通常是header和width,所以你會(huì)覺得這兩項(xiàng)是必須要設(shè)置的,然而寬度(width)其實(shí)不總是需要的,因?yàn)樯院笪覀儗⑹褂胊utoWidth/Height來代替。
列模型樣本
var colModel = new Ext.grid.ColumnModel([ {header: "Author", width: 120, dataIndex: 'Author'}, {header: "Title", width: 180, dataIndex: 'Title'}, {header: "Manufacturer", width: 115, dataIndex: 'Manufacturer'}, {header: "Product Group", width: 100, dataIndex: 'ProductGroup'} ]);
最后是將DataStore和Column Model兩樣?xùn)|西傳入到Grid,渲染結(jié)果,然后加載來自DataStore的數(shù)據(jù),這些就是你讓Grid工作起來的所有因素!
進(jìn)行渲染!
var grid = new Ext.grid.Grid('mygrid', { ds: dataStore, cm: colModel }); grid.render(); dataStore.load();
本文轉(zhuǎn)自:http://www.ajaxjs.com/yuicn/article.asp?id=20075866
---------------------------------------------------------------------------------------------------------------------------------
說人之短,乃護(hù)己之短。夸己之長,乃忌人之長。皆由存心不厚,識(shí)量太狹耳。能去此弊,可以進(jìn)德,可以遠(yuǎn)怨。
http://www.aygfsteel.com/szhswl
------------------------------------------------------------------------------------------------------ ----------------- ---------