【问题标题】:validation in flex datagrid using itemEditor使用 itemEditor 在 flex 数据网格中进行验证
【发布时间】:2014-06-07 13:48:49
【问题描述】:

我有一个包含两列的数据网格。数据类型和值。数据类型有一个组合框,其中包含 char、int、unsigned int、signed int 等选项。现在我想验证值列中输入的值。我正在使用以下方法。

<mx:DataGridColumn headerText="Value"
                               dataField="Values"
                               width="100"
                               editable="{!this.areVariablesReadOnly}">
            <mx:itemEditor> <mx:Component> <mx:TextInput restrict="0-9" maxChars="3" /> </mx:Component> </mx:itemEditor>
            </mx:DataGridColumn>

这仅对 int 值验证 value 列的字段。现在,如果选择了 char,我需要使用不同的 itemEditor 以不同的方式进行验证。 总之,

   if (int)
          use ItemEditor1 
   else if (char)
      use ItemEditor2
   else if (condition)
      use Itemeditor3.

谁能指出我正确的方向?

【问题讨论】:

    标签: apache-flex datagrid itemeditor


    【解决方案1】:

    data 属性(以及dataChange 事件)将使您的生活更轻松。

    例如,
    (假设你的 Datatype 字段是type

    在您的 MXML 中:

    <mx:itemEditor>
        <fx:Component>
            <local:ValueInput type="{data.type}"/>
        </fx:Component>
    </mx:itemEditor>
    

    ValueInput.as:

    package
    {
        import mx.controls.TextInput;
    
        public class ValueInput extends TextInput
        {
            public function set type(value:String):void
            {
                switch (value)
                {
                    case "char":
                        restrict = null;
                        break;
                    case "int":
                        restrict = "0-9";
                        break;
                    case "hex":
                        restrict = "0-9A-F";
                        break;
                }
            }
        }
    }
    

    但是,我不能说这是“正确的方向”。这只是一种方法。可以有很多其他的创意方式,这也取决于开发者的编码风格。

    您尝试做的也是一个好方法。 MX 组件的实现只需要更长的时间。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      相关资源
      最近更新 更多