ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     DataGridの行No
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
saeko
投稿日時: 2008-7-24 14:00
常連さん
登録日: 2008-6-19
居住地:
投稿: 37
DataGridの行No
こんにちは。

DataGridの行NoでlabelFunctionを使用して
下記のように書いています。


			/**
			 * データグリッドの行番号表示
			 */
			private function lfRowNum(oItem:Object,clmn:DataGridColumn):String
			{
				var iIndex:int = dataGrid.dataProvider.getItemIndex(oItem) + 1;
				return String(iIndex);
			}

<mx:DataGridColumn headerText="NO" labelFunction="lfRowNum" width="35" />


ソートをかけてもNoは固定されたままです。
固定ではなく、ソートがされたら、Noもソートされるようにはならないでしょうか?
データはXMLで取得して、dataGrid.dataProviderに
バインドさせていますが、
Noは、labelFunctionのように別で設定したいのですが・・・
goki
投稿日時: 2008-7-24 17:50
ご主人様
登録日: 2007-8-27
居住地: おかのよこはま
投稿: 735
Re: DataGridの行No
ナンバーもdataProviderの値として持たせないと期待する結果にはならないと思いますよ。

ソートを行うと、Collectionの順序を入れ替えているのでNoは変わりませんよね。
hattori127
投稿日時: 2008-7-24 17:58
ご主人様
登録日: 2007-4-13
居住地:
投稿: 57
Re: DataGridの行No
> ソートを行うと、Collectionの順序を入れ替えているのでNoは変わりませんよね。

きっと仰られたかったのは、「ソートを行っても Collectionの順序は入れ替えられていないのでNoは変わらない」ですよね。
細かくてすみません

ではでは


----------------
服部
Banana Systems, Inc

↓ itemRenderer を極めたい方、必読!
http://blog.banana-systems.com

http://www.banana-systems.com

eneco
投稿日時: 2008-7-24 20:28
ご主人様
登録日: 2006-2-16
居住地:
投稿: 135
Re: DataGridの行No
saeko さん、こんにちは。

こういう場合には、labelFunction ではなく、物理的にデータ領域に行番号を追加してしまった方がよいです。

例えば、こんな風にです。データバインディングを行う場合、タイミングによってうまく動作しないので、データ領域を編集した後に dataProvider に代入する方法にしています。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()">

<mx:Script>
	<![CDATA[
	private function initApp():void {
		var len:int = myData.length;
		for( var i:int=0; i<len; i++ ) {
			myData[i].no = i+1; // 行Noを追加
		}
		grid.dataProvider=myData;
	}
	]]>
</mx:Script>

<mx:ArrayCollection id="myData">
	<mx:Object fname="Mimi" lname="Suzuki"/>
	<mx:Object fname="Sachi" lname="Takeda"/>
	<mx:Object fname="Takeshi" lname="Sato"/>
</mx:ArrayCollection>

<mx:DataGrid id="grid" dataProvider="{myData}">
	<mx:columns>
		<mx:DataGridColumn dataField="no"/>
		<mx:DataGridColumn dataField="fname"/>
		<mx:DataGridColumn dataField="lname"/>
	</mx:columns>
</mx:DataGrid>

</mx:Application>



では。
saeko
投稿日時: 2008-7-25 9:14
常連さん
登録日: 2008-6-19
居住地:
投稿: 37
Re: DataGridの行No
みなさん、ご返信ありがとうございます。

やはりこれを実現しようとしたら、
データプロバイダにデータを追加してくのが
一番早いようですね。

知識不足でした。
お恥ずかしい(><)

ありがとうございました★
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を