成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

ExtJs實(shí)現(xiàn)grid屬性動(dòng)態(tài)修改

在使用 ExtJs 構(gòu)建 Web 應(yīng)用程序時(shí),經(jīng)常需要對(duì) grid 進(jìn)行一些屬性的修改。本文將介紹如何動(dòng)態(tài)地改變 grid 中的屬性,包括 data、定義變量、保存固定項(xiàng)目以及增加動(dòng)態(tài)項(xiàng)目。1. 實(shí)現(xiàn)

在使用 ExtJs 構(gòu)建 Web 應(yīng)用程序時(shí),經(jīng)常需要對(duì) grid 進(jìn)行一些屬性的修改。本文將介紹如何動(dòng)態(tài)地改變 grid 中的屬性,包括 data、定義變量、保存固定項(xiàng)目以及增加動(dòng)態(tài)項(xiàng)目。

1. 實(shí)現(xiàn) data 的方法代碼

要想動(dòng)態(tài)地改變 grid 中的數(shù)據(jù),我們需要首先了解如何實(shí)現(xiàn) data 的方法代碼。在 ExtJs 中,我們可以使用 store 來(lái)管理數(shù)據(jù),然后通過(guò) grid 綁定 store,實(shí)現(xiàn)數(shù)據(jù)的展示。因此,我們只需要?jiǎng)討B(tài)地修改 store 中的數(shù)據(jù),就可以實(shí)現(xiàn) grid 屬性的動(dòng)態(tài)修改。

下面是一個(gè)示例代碼,用于實(shí)現(xiàn)動(dòng)態(tài)修改 store 中的數(shù)據(jù):

```

var store ('', {

fields: ['name', 'email', 'phone'],

data: [{

name: 'Lisa',

email: 'lisa@',

phone: '555-111-1224'

}, {

name: 'Bart',

email: 'bart@',

phone: '555-222-1234'

}]

});

store.loadData([{

name: 'Homer',

email: 'homer@',

phone: '555-222-1244'

}, {

name: 'Marge',

email: 'marge@',

phone: '555-222-1254'

}]);

```

上述代碼中,我們首先創(chuàng)建了一個(gè)名為 store 的數(shù)據(jù)倉(cāng)庫(kù),其中包含了三個(gè)字段:name、email 和 phone。接著,我們通過(guò) loadData 方法動(dòng)態(tài)地向 store 中添加了兩條數(shù)據(jù)。

2. 實(shí)現(xiàn)定義變量的方法代碼

有時(shí)候,我們需要在 grid 中自定義一些變量來(lái)實(shí)現(xiàn)特定的功能,比如設(shè)置行高、隱藏某些列等。下面是一個(gè)示例代碼,用于實(shí)現(xiàn)定義變量的方法:

```

('MyGrid', {

extend: '',

rowHeight: 40,

columns: [{

text: 'Name',

dataIndex: 'name',

flex: 1

}, {

text: 'Email',

dataIndex: 'email',

flex: 1

}, {

text: 'Phone',

dataIndex: 'phone',

flex: 1

}],

initComponent: function() {

var me this;

(arguments);

[0].hidden true;

}

});

var myGrid ('MyGrid', {

renderTo: (),

store: store

});

```

上述代碼中,我們首先定義了一個(gè)名為 MyGrid 的類,該類繼承自 。在該類中,我們定義了一個(gè)名為 rowHeight 的變量,用于設(shè)置行高。接著,我們定義了三列數(shù)據(jù),并且在 initComponent 方法中將第一列設(shè)置為隱藏狀態(tài)。

最后,我們通過(guò) 方法創(chuàng)建了一個(gè)名為 myGrid 的對(duì)象,并將其渲染到頁(yè)面上。

3. 實(shí)現(xiàn)保存固定項(xiàng)目的方法代碼

有時(shí)候,我們需要將 grid 中的某些項(xiàng)目保存下來(lái),方便下次使用。下面是一個(gè)示例代碼,用于實(shí)現(xiàn)保存固定項(xiàng)目的方法:

```

var fixedColumns [{

text: 'Name',

dataIndex: 'name',

width: 150

}, {

text: 'Email',

dataIndex: 'email',

width: 200

}];

var dynamicColumns [{

text: 'Phone',

dataIndex: 'phone',

flex: 1

}];

var columns (dynamicColumns);

var grid ('', {

columns: columns,

store: store,

width: 550,

height: 250,

renderTo: ()

});

var saveBtn ('Ext.Button', {

text: 'Save Columns',

handler: function() {

('fixedColumns', Ext.JSON.encode(fixedColumns));

}

});

(());

```

上述代碼中,我們首先定義了兩個(gè)數(shù)組:fixedColumns 和 dynamicColumns,分別用于保存固定的列和動(dòng)態(tài)的列。接著,我們將這兩個(gè)數(shù)組合并成一個(gè)新的數(shù)組 columns,并將其作為參數(shù)傳遞給 類,完成 grid 的創(chuàng)建。

最后,我們創(chuàng)建了一個(gè)名為 saveBtn 的按鈕,并將其保存到本地存儲(chǔ)中。這樣,在下次使用該頁(yè)面時(shí),我們就可以直接加載保存的固定項(xiàng)目,而無(wú)需重新定義。

4. 實(shí)現(xiàn)在固定項(xiàng)目的基礎(chǔ)上增加動(dòng)態(tài)項(xiàng)目的方法代碼

除了保存固定項(xiàng)目外,有時(shí)候我們還需要在固定項(xiàng)目的基礎(chǔ)上增加一些動(dòng)態(tài)項(xiàng)目。下面是一個(gè)示例代碼,用于實(shí)現(xiàn)在固定項(xiàng)目的基礎(chǔ)上增加動(dòng)態(tài)項(xiàng)目的方法:

```

var addBtn ('Ext.Button', {

text: 'Add Column',

handler: function() {

var newColumn {

text: 'New Column',

dataIndex: 'newDataIndex',

flex: 1

};

(, newColumn);

().refresh();

}

});

(());

```

上述代碼中,我們創(chuàng)建了一個(gè)名為 addBtn 的按鈕,并在其單擊事件中動(dòng)態(tài)地添加了一列新數(shù)據(jù)。具體來(lái)說(shuō),我們定義了一個(gè)名為 newColumn 的新列,并將其插入到當(dāng)前列的末尾位置。最后,我們調(diào)用 getView().refresh() 方法刷新 grid,使得新增的列能夠正常顯示。

總之,通過(guò)上述四種方法,我們可以輕松地實(shí)現(xiàn) ExtJs 中 grid 屬性的動(dòng)態(tài)修改,從而提升 Web 應(yīng)用程序的靈活性和交互性。

標(biāo)簽: