2015-10-14 88 views
0

我有一個具有兩列UserName和eSigner的AdvancedDataGrid控件。它看起來像:AdvancedDataGrid可編輯屬性問題

AdvanceDataGrid

代碼如下:

<mx:AdvancedDataGrid id="UserGroupGrid" left="10" bottom="40" right="10" editable="true" height="226"> 
      <mx:dataProvider> 
       <mx:GroupingCollection id="gc" source="{UserGroupList}"> 
        <mx:Grouping> 
         <mx:GroupingField name="UserGroupName"/> 
        </mx:Grouping> 
       </mx:GroupingCollection> 
      </mx:dataProvider> 
      <mx:columns> 
       <mx:AdvancedDataGridColumn textAlign="left" headerText="UserName" dataField="UserName" editable="false"/> 
       <mx:AdvancedDataGridColumn width="100" dataField="eSignor" headerText="eSigner" editable="true" textAlign="center" rendererIsEditor="true" editorDataField="cbSelected" editorYOffset="30"> 
        <mx:itemRenderer> 
         <mx:Component> 
          <mx:HBox horizontalAlign="center"> 
           <mx:Script> 
            <![CDATA[ 
             public var cbSelected:Boolean; 
            ]]> 
           </mx:Script> 
           <mx:CheckBox id="SignorCk" width="10" selected="{data.eSignor}" enabled="true" click="cbSelected = SignorCk.selected;" visible="{data.eSignor == null ? false : true}"/> 
          </mx:HBox> 
         </mx:Component> 
        </mx:itemRenderer> 
       </mx:AdvancedDataGridColumn> 
      </mx:columns> 
</mx:AdvancedDataGrid> 

正如你在我想要的列用戶名是不可編輯和列eSigner可編輯的代碼中看到。當我加載頁面時,我遇到了分組標題Accounts Payable變爲可編輯的問題。當我點擊Accounts Payable然後點擊瀏覽器的某個地方,然後再次點擊Accounts Payable時,會發生這種情況。它看起來像這樣:

AdvanceDataGrid1

我試圖this用更少的成功。由於UserName列的可編輯設置爲false,因此我想知道這裏發生了什麼。

回答

1
itemEditBegin="preventEdit(event);" 

上面的屬性在這裏做的伎倆。在發佈的代碼中,只需添加此屬性。

<mx:AdvancedDataGrid id="UserGroupGrid" itemEditBegin="preventEdit(event);" left="10" bottom="40" right="10" editable="true" height="226"> 

在腳本標記添加功能:

private function preventEdit(event:AdvancedDataGridEvent):void 
{ 
    if(event.itemRenderer.data.UserName == null) 
     event.preventDefault(); 
} 

每當我們專注出來,在焦點放回,在分組報頭,這將調用preventEdit功能,將取消本次活動的默認編輯行爲。我認爲這僅僅是一種解決方法,希望他們已經修復這一切Flex 4中

來源:Adobe