ホームページ ウェブフロントエンド jsチュートリアル extjs学習メモ(3) 最も基本的なgrid_extjs

extjs学習メモ(3) 最も基本的なgrid_extjs

May 16, 2016 pm 06:44 PM
extjs grid 勉強ノート

この点、jquery はまったく逆です。その UI は必要なものをすべて参照できるため、非常に小規模で柔軟性があります。ただし、プラグインはさまざまな人々やチームによって提供されることが多いためです。 、インターフェイスとインターフェイスがそれほど一貫していないことがよくあります。とにかく、それぞれにそれぞれの良さがあります。
今日は extjs でグリッドを学習しています。これは強力で比類のないものだと言えます。笑、それは少し大げさのようです。 。さて、これ以上の苦労はせずに、最も単純なグリッドから始めて、extjs が提供するグリッドがどのような機能を提供するかを段階的に見てみましょう。
グリッドにはいくつかの行と列が含まれています。extjs では、列は Ext.grid.ColumnModel によって管理されます。

コードをコピーします コードは次のとおりです:

var cm = new Ext.grid.ColumnModel([
{id:'company',header : "会社"、幅: 160、並べ替え可能: true、dataIndex: '会社'}、
{ヘッダー: "価格"、幅: 75、並べ替え可能: true、dataIndex: '価格'}、
{ヘッダー: "変更"、幅: 75、並べ替え可能: true、dataIndex: 'change'}、
{ヘッダー: "% 変更"、幅: 75、並べ替え可能: true、dataIndex: 'pctChange'}、
{ header: "Last Updated "、width: 85、sortable: true、dataIndex: 'lastChange'}
]);

ここでは 5 つの列が定義されており、列はパラメータを通じて設定できます。 : id は列を識別するために使用されます。CSS でこの ID を使用して、列全体のすべてのセルのスタイルを設定します。この ID に応じて、幅は列の幅になります。 sortable は、列をソートできるかどうかを示すために使用されます。 dataIndex は、今のところ無視してください。より一般的に使用されるパラメータには、列が編集可能かどうかを示す editable、列の表示方法を示す renderer などがあります。これについては後で詳しく説明します。
列を使用するには、行を埋めるためのデータがまだ必要です。配列を構築しましょう:
コードをコピーしますコードは次のとおりです:

var myData = [
['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
['Alcoa Inc ',29.01,0.42 ,1.47,'9/1 12:00am'],
['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
['アメリカExpress Company',52.55 ,0.01,0.02,'9/1 12:00am'],
['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am '],
['Caterpillar Inc.',67.27,0.92,1.39,'9/1 午前 12:00'],
['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'] 、
['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am']、
['Exxon Mobil Corp',68.1,-0.43 ,-0.64,' 9/1 12:00am'],
['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
['General Motors Corporation' ',30.27,1.09 ,3.74,'9/1 12:00am'],
['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'] 、
['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am']、
['McDonald's Corporation',36.76,0.86,2.40,'9/1 12 :00am'],
['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
['Microsoft Corporation',25.84,0.14,0.54, '9/1 12:00am'],
['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
['The Coca-Cola Company',45.07,0.26 ,0.58,'9/1 12:00am'],
['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
['The Procter &ギャンブル会社',61.91 ,0.01,0.02,'9/1 午前 12:00'],
['ユナイテッド テクノロジーズ コーポレーション',63.26,0.55,0.88,'9/1 午前 12:00'],
[ 'Verizon Communications', 35.57,0.39,1.11,'9/1 12:00am']、
['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
];

これですべての列が定義され、データが利用可能になります。次のステップはそれらをグリッドに組み立てることです。完全なコードを見てください:
コードをコピーします コードは次のとおりです:

///<参照パス="vswd-ext_2.0.2.js" />
/**//*
*作成者: Daben
*日付: 2009-10-13
*バージョン: 1.0
*/
Ext.onReady(function() {
//构造列
var cm = new Ext.grid.ColumnModel([
{ id: ' company'、ヘッダー: "会社"、幅: 160、並べ替え可能: true、dataIndex: '会社' }、
{ ヘッダー: "価格"、幅: 75、並べ替え可能: true、dataIndex: '価格' }、
{ ヘッダー: "Change"、幅: 75、並べ替え可能: true、dataIndex: 'change' }、
{ ヘッダー: "% Change"、幅: 75、並べ替え可能: true、dataIndex: 'pctChange' }、
{ header: "Last Updated", width: 85, sortable: true, dataIndex: 'lastChange' }
]);
//构造数据
var myData = [
[' 3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'],
['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'],
[' Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
['American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'],
['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'],
['AT&T Inc.', 31.61, -0.48, -1.54, '9/1 12:午前0時']、
['ボーイング社'、75.43、0.53、0.71、'9/1午前12時']、
['キャタピラー社'、67.27、0.92、1.39、'9/1 12:00am']、
['Citigroup, Inc.'、49.37、0.02、0.04、'9/1 12:00am']、
['E.I.デュポン ド ヌムール アンド カンパニー', 40.48, 0.51, 1.28, '9/1 午前 12:00'],
['エクソン モービル コーポレーション', 68.1, -0.43, -0.64, '9/1 午前 12:00' ]、
['ゼネラル・エレクトリック・カンパニー'、34.14、-0.08、-0.23、'9/1 午前12時']、
['ゼネラル・モーターズ・コーポレーション'、30.27、1.09、3.74、'9/1 12:00am']、
['Hewlett-Packard Co.'、36.53、-0.03、-0.08、'9/1 12:00am']、
['Honeywell Intl Inc'、38.77、0.05、 0.13, '9/1 12:00am'],
['Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'],
['International Business Machines', 81.41, 0.44 , 0.54, '9/1 午前 12:00'],
['ジョンソン・エンド・ジョンソン', 64.72, 0.06, 0.09, '9/1 午前 12:00'],
['JP モルガン・アンド・チェース・アンド・カンパニー', 45.73, 0.07, 0.15, '9/1 午前 12:00'],
['マクドナルド コーポレーション', 36.76, 0.86, 2.40, '9/1 午前 12:00'],
['メルクと株式会社', 40.96, 0.41, 1.01, '9/1 午前 12:00'],
['Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 午前 12:00'],
['ファイザー社', 27.96, 0.4, 1.45, '9/1 午前 12:00'],
['コカ・コーラ カンパニー', 45.07, 0.26, 0.58, '9/1 午前 12:00'] 、
['The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am']、
['The Procter & Gamble Company', 61.91, 0.01, 0.02, '9 /1 12:00am'],
['United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'],
['Verizon Communications', 35.57, 0.39, 1.11, ' 9/1 午前 12:00'],
['ウォルマート ストアーズ, Inc.', 45.45, 0.73, 1.63, '9/1 午前 12:00']
];
//构造grid
var Grid = new Ext.grid.GridPanel({
renderTo: "grid",
store: new Ext.data.ArrayStore({
fields: [
{ 名前: '会社' }、
{ 名前: '価格'、タイプ: 'フロート' }、
{ 名前: '変更'、タイプ: 'フロート' }、
{ 名前: 'pctChange', type: 'float' },
{ name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia' }
],
data:myData
})、
cm: cm、
ストライプ行: true、
autoExpandColumn: '会社'、
高さ: 350、
幅: 600、
タイトル: '配列グリッド'
});
})

extjs では、Ext.grid.GridPanel はグリッドを表し、設定のパラメータとして json オブジェクトが必要です。使用される設定を見てみましょう:
renderTo: グリッドがレンダリングされた後にどこに表示されるかを示します。要素、Dom ノード、または Element オブジェクトの ID にすることができます。そのようなパラメーターがない場合は、Ext.grid.GridPanel の render メソッドを呼び出してグリッドをレンダリングする必要があります。
stroe: ds と略すことができ、統一されたインターフェイスを使用してデータをグリッドに提供します。データには、使用する配列に加えて、json、xml などの形式も含まれる可能性があります。グリッドが担当する場合 各データ形式を識別することは明らかに良い設計アイデアではないため、データ形式の変換を担当する特別なクラス Ext.data.Store が extjs にあります。ここではそのサブクラス ArrayStore を使用します。名前が示すように、配列への変換に特化したものです。 Ext.data 名前空間の一部のクラスについて説明する専用のシリーズを用意し、Store クラスを深く理解します。ここでは、Ext.data.Field クラスのコレクションである使用するフィールドのみを確​​認します。このクラスには、列に対応するために以前に ColumnModel で無視した dataIndex 属性が含まれています。フィールド間の関係。type はタイプを示すために使用され、デフォルトは文字列タイプで、dateFormat は日付の形式を示します。
cm:colModel の略称。先ほど作成した ColumnModel オブジェクトをここに置きます。
StripeRows: ストライプを表示するかどうか。
autoExpandColumn: グリッドの空のスペースを自動的に埋める、自動的に拡張される列。
高さと幅: グリッドの高さと幅。
title: グリッドのタイトル。
それでは、このグリッドが非常に美しいことを確認してみましょう。列名をクリックすると、列の幅を自由にドラッグして位置を変更することもできます。 Ctrl キーを押すと、複数の行を選択できます。列名の上にマウスを移動すると、小さな逆三角形が表示され、クリックするとメニューが表示され、列を並べ替えたり、列を非表示にしたりできることがわかります。ただし、日付表示が満足のいくものではなく、パーセンテージが依然として浮動小数点数であることも確認されており、通常、損失を表すために赤字、またはより一般的な用語であるマイナス成長がグリッド内にある場合は、マイナス成長になる可能性があります。赤字でも表され、効果はさらに高まるはずです。 extjs は、私たちのアイデアを実現するための非常に便利なもの、レンダラーを提供します。 ColumnModel では、必要な列にレンダラーを追加して、必要な効果を実現できます。以下は、変更された ColumnModel です:
コードをコピー コードは次のとおりです:

//列を構築します
var cm = new Ext.grid.ColumnModel([
{ id: 'company', header: "Company", width: 160, sortable: true, dataIndex: 'company' },
{ ヘッダー: "価格"、幅: 75、並べ替え可能: true、dataIndex: '価格' }、
{ ヘッダー: "変更"、幅: 75、並べ替え可能: true、dataIndex: '変更'、レンダラー: 変更 } ,
{ ヘッダー: "% Change", width: 75, sortable: true, dataIndex: 'pctChange', renderer: pctChange },
{ header: "Last Updated", width: 120, sortable: true, dataIndex: ' lastChange',renderer:Ext.util.Format.dateRenderer("Y-m-d h:i") }
])
// 列レンダラー関数を変更します
function change(val) {
if (val > 0) {
return '' val ''; else if (val return '' val '';
return val;
}
// % 列を変更しますレンダラー関数
function pctChange(val) {
if (val > 0) {
return '' val '%' ;
} else if (val return '' val '%';戻り値;
}


レンダラーは、データを表示する前に変換するために使用される「インタープリター」メソッドとして理解できます。レンダラーを実装するには、次の 3 つの方法があります。
HTML マークアップを返すレンダラー関数を使用する
レンダラー関数を提供する Ext.util.Format クラスの属性
レンダラー関数とスコープを含むオブジェクト
この例では、最初の 2 つの方法を使用します。レンダラ関数は 6 つのパラメータを渡し、セルのすべての情報を保存します。ここでは最初のパラメータのみが使用され、セルの値が保存されます。他のパラメータの意味についてはヘルプ ドキュメントを参照してください。
ここでプログラムを実行すると、希望する効果が表示されます。比較として、マイナスの成長は赤字で表され、プラスの成長は緑色で表され、時間も希望の形式で表示されます。
各行に番号を付けたい場合もあります。これは、ColumnModel のコンストラクターに新しい Ext.grid.RowNumberer() を追加するだけで簡単に実行できます。
コードをコピーします
コードは次のとおりです。 var cm = new Ext.grid.ColumnModel([ new Ext.grid .RowNumberer( ), //自動番号付けを実装します
{ id: 'company', header: "Company", width: 160, sortable: true, dataIndex: 'company' },
{ header: "Price" , width: 75、並べ替え可能: true、dataIndex: '価格' }、
{ ヘッダー: "変更"、幅: 75、並べ替え可能: true、dataIndex: '変更'、レンダラー: 変更 }、
{ ヘッダー : "% Change"、幅: 75、ソート可能: true、dataIndex: 'pctChange'、レンダラー: pctChange }、
{ ヘッダー: "最終更新"、幅: 120、ソート可能: true、dataIndex: 'lastChange'、レンダラ:Ext .util.Format.dateRenderer("Y-m-d h:i") }
]);


Ext.grid.GridPanel の構成では、一般的に使用される 2 つのパラメーターがあります。 : このパラメータを使用して、グリッド インターフェイスの設定を行うことができます。詳細については、ヘルプ ドキュメントを参照してください。
selModel: sm と省略できます。セルの選択や行全体の選択など、モデルを選択します。デフォルトでは行が選択されます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CSS フレックスおよびグリッド レイアウトを使用して 3D ダイスを実装する手順を段階的に説明します (コード付き) CSS フレックスおよびグリッド レイアウトを使用して 3D ダイスを実装する手順を段階的に説明します (コード付き) Sep 23, 2022 am 09:58 AM

フロントエンドのインタビューでは、CSS を使用してサイコロや麻雀のレイアウトを実装する方法をよく質問されます。以下の記事では、CSSを使用して3Dサイコロを作成する方法(FlexおよびGridレイアウトで3Dサイコロを実装)を紹介しますので、ご参考になれば幸いです。

PHP 学習ノート: データ構造とアルゴリズム PHP 学習ノート: データ構造とアルゴリズム Oct 09, 2023 pm 11:54 PM

PHP 学習メモ: データ構造とアルゴリズムの概要: データ構造とアルゴリズムは、コンピューター サイエンスにおける 2 つの非常に重要な概念であり、問​​題を解決し、コードのパフォーマンスを最適化するための鍵となります。 PHP プログラミングでは、データを保存および操作するためにさまざまなデータ構造を使用する必要があり、さまざまな機能を実装するためにアルゴリズムも使用する必要があります。この記事では、一般的に使用されるデータ構造とアルゴリズムをいくつか紹介し、対応する PHP コード例を示します。 1. 線形構造配列 (Array) 配列は最も一般的に使用されるデータ構造の 1 つであり、順序付けされたデータを格納するために使用できます。

PHP と ExtJS を使用して強力な Web アプリケーション機能を実装する方法 PHP と ExtJS を使用して強力な Web アプリケーション機能を実装する方法 Jun 25, 2023 am 11:40 AM

Web アプリケーションの継続的な開発と人気により、ますます多くの企業や個人が PHP と ExtJS を使用して強力な Web アプリケーションを構築し始めています。人気のサーバーサイド スクリプト言語として、PHP はクロスプラットフォームで学習が簡単ですが、ExtJS は開発者がインタラクティブな Web アプリケーション インターフェイスを迅速に構築するのに役立つ人気のフロントエンド フレームワークです。この記事では、PHP と ExtJS を使用して強力な Web アプリケーション機能を実装する方法を紹介します。使用する PHP および MySQL データベース接続を確立する

PHP 学習メモ: フォーラムとブログ システム開発 PHP 学習メモ: フォーラムとブログ システム開発 Oct 09, 2023 am 10:57 AM

PHP 学習ノート: フォーラムとブログ システムの開発 Web 開発の分野では、フォーラムとブログ システムは非常に一般的なアプリケーションです。これらは、ユーザーが通信し、情報を共有するためのプラットフォームを提供します。この記事では、PHP を使用して簡単なフォーラムとブログ システムを開発する方法について説明し、具体的なコード例を添付します。環境のセットアップ まず、PHP 開発に適した開発環境をセットアップする必要があります。 XAMPP や WAM などの AMP (Apache、MySQL、PHP) パッケージを使用できます

一般的に使用される 5 つの CSS レイアウト フレームワークについて学びます 一般的に使用される 5 つの CSS レイアウト フレームワークについて学びます Jan 16, 2024 am 09:20 AM

CSS レイアウト フレームワーク: 一般的に使用される 5 つのレイアウト フレームワークを探索する はじめに: Web デザインでは、レイアウトは重要な部分です。 CSS レイアウト フレームワークは、さまざまなレイアウト スタイルを備えた Web ページを迅速に構築するのに役立ちます。この記事では、一般的に使用される 5 つの CSS レイアウト フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1. ブートストラップ: ブートストラップは、現在最も人気のある CSS レイアウト フレームワークの 1 つです。豊富なコンポーネントと強力な応答機能を備えており、

CSS の相対レイアウト プロパティの詳細な説明: 位置と相対 CSS の相対レイアウト プロパティの詳細な説明: 位置と相対 Oct 26, 2023 am 10:01 AM

CSS の相対レイアウト プロパティの詳細な説明: 位置と相対 フロントエンド開発では、開発者が直面する必要がある問題がレイアウトであることがよくあります。ページ上の要素の位置をより適切に制御するために、CSS にはさまざまなレイアウト メソッドが用意されています。中でも相対レイアウトは非常に一般的なレイアウト方法であり、position属性とrelative属性を利用することで要素の位置や大きさを柔軟に調整することができます。 Position 属性は、要素の配置方法を定義するために使用されます。共通の値

CSS パネル レイアウト プロパティ: グリッドおよびグリッド テンプレート列 CSS パネル レイアウト プロパティ: グリッドおよびグリッド テンプレート列 Oct 25, 2023 am 08:15 AM

CSS パネル レイアウト プロパティ: グリッドとグリッド テンプレート列 最近の Web ページ レイアウトでは、パネル レイアウトは Web コンテンツをグリッドに配置できる一般的な設計方法です。パネルレイアウトを実現するには、CSSのグリッドレイアウト属性とgrid-template-columns属性が鍵となります。 1. グリッド レイアウト属性の概要 グリッド レイアウト属性は、CSS でグリッド レイアウトを作成するために使用される属性です。

ページ レイアウトとレスポンシブ デザインのための UniApp 実装テクニック ページ レイアウトとレスポンシブ デザインのための UniApp 実装テクニック Jul 05, 2023 pm 01:57 PM

ページ レイアウトとレスポンシブ デザインを実装するための UniApp の実装スキル はじめに: UniApp は、iOS、Android、H5 などの複数のプラットフォーム向けのアプリケーションを同時に開発できる、Vue.js フレームワークに基づくクロスプラットフォーム開発ツールです。この記事では、UniApp を使用してページ レイアウトとレスポンシブ デザインを実装する方法を紹介し、いくつかの実用的なコード例を示します。 1. ページ レイアウト Flex レイアウト Flex レイアウトは、ページ レイアウトで一般的に使用される方法であり、さまざまな画面サイズやデバイスに自動的に適応できます。ユニアプリ内

See all articles