ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   Flex Builder 3
     DataGrid ある行だけ選択させない方法について
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
hokuto
投稿日時: 2010-9-14 15:20
ご主人様
登録日: 2006-10-15
居住地:
投稿: 59
Re: DataGrid ある行だけ選択させない方法について
buibuiさん


回答いただいたのたのに返信もしないですみませんでした。

開発にぼっとうするあまり失念しておりました。

buibuiさんの方法などいろいろやってみた結果
背景色を変えてユーザーに見た目でわかるようにして
その後の処理でチェックするような動きにしました。
※選択できないところであればエラーにする。

ありがとうございました。
参考にさせていただきました。
buibui
投稿日時: 2010-6-17 18:30
ご主人様
登録日: 2009-10-18
居住地: 中部
投稿: 168
Re: DataGrid ある行だけ選択させない方法について
こんにちは。

あ、リストをクリックしたままRollOutすると選択されたままになるので注意してください。
DataGridのRollOutイベントでチェック。

何か頭悪い感じなのでもっと良いやり方ってないのでしょうかね?


private function onRollOut(e:Event):void
{
  if (cDataGrid.selectedIndex == -1)
    return;
  
  var _s:String = cDataGrid.selectedItem.adrs as String;
  if (_s.indexOf(cText.text) != -1)
  {
    cDataGrid.selectedIndex = -1;
    trace("選択できません");
  }
}
buibui
投稿日時: 2010-6-17 18:11
ご主人様
登録日: 2009-10-18
居住地: 中部
投稿: 168
Re: DataGrid ある行だけ選択させない方法について
こんにちは。

こんな感じでどうでしょう?
前もって選択できない文字列を配列にして、アイテムクリック時にループでチェックすると色々できそうですね。
また、文字列だけでなくオブジェクト自体を比較することもできますね。



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

  <mx:Script>
  <![CDATA[
    import mx.events.ListEvent;
    import mx.collections.ArrayCollection;

    private var pList:ArrayCollection = null;
  
    private function initApp():void
    {
      pList = new ArrayCollection();
      pList.addItem({
          name: "太郎",
          adrs: "東京"
      });
      pList.addItem({
          name: "花子",
          adrs: "長崎"
      });
      pList.addItem({
          name: "ああ",
          adrs: "福岡"
      });
      cDataGrid.dataProvider = pList;
    }
    
    private function onItemClick(e:ListEvent):void
    {
      var _s:String = cDataGrid.selectedItem.adrs as String;
      if (_s.indexOf(cText.text) != -1)
      {
        cDataGrid.selectedIndex = -1;
        trace("選択できません");
      }
    }
  ]]>
  </mx:Script>
  
  <mx:TextInput x="196" y="10" id="cText" text="長崎" width="238"/>
  <mx:Text x="10" y="12" text="住所に次の文字を含む時は選択できない"/>
  
  <mx:DataGrid
    x="10" y="40" width="424" height="200"
    itemClick="onItemClick(event)"
    id="cDataGrid">
    <mx:columns>
      <mx:DataGridColumn headerText="氏名" dataField="name"/>
      <mx:DataGridColumn headerText="住所" dataField="adrs"/>
    </mx:columns>
  </mx:DataGrid>

</mx:Application>

hokuto
投稿日時: 2010-6-17 11:27
ご主人様
登録日: 2006-10-15
居住地:
投稿: 59
DataGrid ある行だけ選択させない方法について
DataGridで特定の行だけ選択させないようにしたいのですが、
何か良い方法はないでしょうか?

いろいろ調べたのですが、良い方法が見つかりません。
もしご存じの方がいましたら宜しくお願いいたします。


氏名 住所
-----------------------------------------
太郎 東京
花子 長崎 ⇒ この行だけ選択させない(Enabled=false 使用不可など)
ああ 福岡

スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を