云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          ?

          現(xiàn)在有一個方便的做法來根據(jù)選擇Enable/Disable控件。比如:有一個DataGrid和數(shù)個操作數(shù)據(jù)的按鈕,當(dāng)選中某行是激活其中一個按鈕,選中另一行時,激活其中另一個按鈕,等等。

          通常的做法是寫一大堆的if else語句,或者是設(shè)置一堆變量綁定到按鈕上,然后在代碼中設(shè)置這些變量的值,比如:

          [Bindable] private var somethingSelected:Boolean = false;
          <mx:Button label="Publish" click="publishItem()" enabled="{somethingSelected}" />

          這是一個有益的嘗試。所有的依賴于DataGrid狀態(tài)的控件都綁定一個變量。改變變量的值就改變控件的enabled狀態(tài)。但是你還需要確定改變變量值的時機(jī)。比如:

          private function publishItem() : void {
          ???? // get the selected item
          ???? // publish it
          ???? grid.selectedItem = -1; // clear the selection
          ???? somethingSelected = false;
          }

          在復(fù)雜的情況下,假設(shè)有另一個按鈕需要在選中某個特定值時被激活。那么你不僅需要考慮選中對應(yīng)的那個變量,還需要考慮其他按鈕的情況。也就是說,在publishItem函數(shù)中你還需要設(shè)置其他變量的值。

          一個更方便的做法是這樣的。現(xiàn)在我們Publish按鈕和somethingSelected變量進(jìn)行綁定。我們還需要做的是把somethingSelected變量與DataGrid的選中狀態(tài)進(jìn)行關(guān)聯(lián)。對此,我們可以使用<mx:Binding>標(biāo)簽。

          <mx:Binding source="grid.selectedIndex >= 0" destination="somethingSelected" />

          這樣somethingSelected的值與DataGrid的選中狀態(tài)就緊密地聯(lián)系起來了。當(dāng)選中了DataGrid中的某條數(shù)據(jù)時,所有進(jìn)行enabled="{somethingSelected}"綁定的按鈕就被激活。<mx:Binding>標(biāo)簽的source屬性不需要一定是一個變量,完全可以是一個表達(dá)式。

          比如稍微復(fù)雜一點的一個例子:

          <mx:Binding source="grid.selectedItem.code == 1" destination="codeOnePicked" />

          這樣,當(dāng)DataGrid選中行的code字段的值為1時,變量codeOnePicked的值被設(shè)置為true。
          mxml中可以如下定義:

          <mx:CheckBox label="Code One?" selected="{codeOnePicked}" />
          <mx:Button label="Publish" enabled="{somethingSelected && !codeOnePicked}" />

          這樣,當(dāng)選中行的code字段值為1時,上面的復(fù)選框被激活,而下面的按鈕無效。



          主站蜘蛛池模板: 尼木县| 广南县| 通辽市| 泾源县| 波密县| 齐齐哈尔市| 融水| 高要市| 平泉县| 双桥区| 华容县| 新竹市| 深泽县| 莆田市| 夏津县| 得荣县| 南宫市| 中西区| 梁山县| 浦北县| 宁都县| 明光市| 南宫市| 富宁县| 福清市| 女性| 临邑县| 民权县| 桐城市| 阿图什市| 卢龙县| 茶陵县| 绥中县| 乐东| 吉林省| 洛南县| 阜新市| 阜阳市| 福建省| 托克逊县| 萍乡市|