2016-04-07 7 views
-1

私はフレックス無効にチェックボックスが

  1. 最初の列のフレックスコードを書いています選択されていないデータグリッドの行は、チェックボックス
  2. datadridで唯一の特定の行を有効にする必要がありますチェックボックスが、その後slectedされた場合、すなわち他のすべての列を持っています私は特定の行のために有効にする必要があります

私はそれぞれのdatagridcolumnでitemrendererを使用しているので、私はそのIDの外部にアクセスすることはできません。

チェックボックスの変更に基づいて行を無効または有効にするにはどうすればよいですか?

答えて

0

行を無効にすると、意味が異なる可能性があります。ただし、ユーザーが行を編集できないようにする場合は、データグリッドの編集可能なプロパティがtrueに設定されている場合でも、event:ListEventとそのプロパティevent.preventDefault()を使用してこれを行うことができます。

チェックボックス列をクリックすると、関数が呼び出され、ListEventを介してrowIndexがグローバル変数checkedIndexに格納されます。以下の関数をDataGridのitemClickプロパティで呼び出します。

public function disableEditing(event:ListEvent):void 
{ 
    if(event.columnIndex == 0) 
     //call a function & assign the value into global var checkedIndex 
    else 
    { 
     var currentIndex: Number = event.rowIndex; 
     if (currentIndex != checkedIndex) 
     { 
      event.preventDefault(); 
     } 
    } 
} 

ListEvent hereに関するさらに詳しい情報。

0

ありがとうございました。 preventDefaultを使用してみましたが、列は無効になっていますが、有効にすることはできません。

私は3列を持つ私の要件と。具体的には、 まずチェックボックスと他の2つはテキストボックスが含まれている含まれているチェックボックスは、特定の行に、後続のテキストボックスをチェックされている場合、これらのすべては、DataGridの列

の別々のitemrenderers内にあるべきです編集可能 チェックボックスをオフにした場合、テキストボックスは編集できません。

+0

あなたは、あなたのコードを共有することができます。 – rakemen

0

itemrendererの内部から、data.fieldnameを使用してレコードデータにアクセスできます。
他の列に基づいて動的に変更する場合は、access id of component which is inside itemrenderは不要です。
データをバインドするだけです。

<mx:TextInput enabled="{data.isChecked}"/> <!-- For Flex3 --> 
<s:TextInput enabled="{data.isChecked}"/> <!-- For Flex4 --> 

実施例:私たちは、あなたがこれを達成する方法を見ることができるようにhttp://wonderfl.net/c/6MS0

+0

このソリューションはすばらしく見えますが、私がリフレッシュを呼び出すと、チェックボックス列に実装されているデフォルトソーターが適用され、選択された行がテーブルの最上部に移動し、必要なdontのソートを行います。ページが読み込まれたときのデフォルトです。そのため、リフレッシュ以外のオプションがあるかどうかを知りたかったのです –

関連する問題