2015-10-14 65 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