Frage

Ich versuche derzeit, das selektierbare / bearbeitbare / oder die Textinput in Dynamic zu deaktivieren, um mein gewünschtes Ergebnis zu erzielen.

Ich habe ein benutzerdefiniertes DataGrid mit Dropdowns und Texteingangsbereichen. Wenn es jedoch keine Daten in meiner Modell -Spalte # enthalten, möchte ich keinen Eintrag in der entsprechenden Einkaufszelle zulassen.

col1 = new DataGridColumn("Model");
    col1.headerText = "Model #";
    c2.consumables_dg.addColumn(col1);
    col1.width = 60;
    col1.editable = false;
    col1.sortable = false;
    col1.cellRenderer = AlternatingRowColors_editNum_PurchasePrice;
col1 = new DataGridColumn("PurchasePrice");
    col1.headerText = "Purchase Price";
    c2.consumables_dg.addColumn(col1);
    col1.width = 60;
    col1.editable = false;
    col1.sortable = false;
    col1.cellRenderer = AlternatingRowColors_editNum_PurchasePrice;

Ich habe verschiedene Gegenstände in der AlternatingRowColors_Editnum_PurchasePrice ausprobiert, aber bisher scheint nichts zu funktionieren. Bitte schauen Sie sich an, was ich in meiner sonstigen Aussage von if (__ Enbaled) ausprobiert habe.

package{
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;
    import fl.controls.TextInput;
    import flash.text.TextFieldType;
    import flash.events.Event;
    import fl.controls.listClasses.ListData;
    import fl.controls.listClasses.ICellRenderer;

public class AlternatingRowColors_editNum_PurchasePrice extends TextInput implements ICellRenderer
{
    protected var _data:Object;
    protected var _listData:ListData;
    protected var _selected:Boolean;
    private var __enabled:Boolean = false;
    public static var _stage;
    public static var _alignment;
    private var tf:TextFormat;

    public function AlternatingRowColors_editNum_PurchasePrice()
    {
        tf = new TextFormat();
        if(__enabled){
                if(_alignment == 2){
                    tf.align = TextFormatAlign.RIGHT;
                }else if(_alignment == 1){
                    tf.align = TextFormatAlign.CENTER;
                }else{
                    tf.align = TextFormatAlign.LEFT;
                }
            restrict = "0-9.";
            addEventListener(Event.CHANGE, textChange);

        }else{
            //this.selectable = false; // did not work
            //textField.selectable = false; // did not work
            //textField.type = dynamic; // did not work
            //textField.type = TextFieldType.DYNAMIC; // did not work
            //this.mouseEnabled = false; // did not work
            //this.tabEnabled = false; // did not work
            //textField.mouseEnabled = false; // did not work
            //textField.tabEnabled = false; // did not work
            //selectable = false; // did not work
            //this.selectable = false; // did not work
            //_enabled = false; // did not work
            //-----------------------------------------------------------
            //   *** Corresponding Entry to enable was placed above ***
            //-----------------------------------------------------------
        }
        super();
    }

    public function textChange(Event):void{
        //trace(_data.Discount);
        _data.PurchasePrice = text;
    }

    public function get data():Object
    {
        return _data;
    }

    public function set data(value:Object):void
    {
        _data = value;
        text = value.PurchasePrice;

        if(value.Model != "") __enabled = true;

        if (value.id % 2 == 0) {
            setStyle("upSkin", AlternateColor1 );
        } else {
            setStyle("upSkin", AlternateColor2 );
        }
    }

    public function get listData():ListData
    {
        return _listData;
    }

    public function set listData(value:ListData):void
    {
        _listData = value;
    }

    public function get selected():Boolean
    {
        return _selected;
    }

    public function set selected(value:Boolean):void
    {
        _selected = value;
    }

    public function setMouseState(state:String):void
    {
    }
    override protected function drawLayout():void
    {
        textField.setTextFormat(tf);
        super.drawLayout();
    }

}
}

Nehmen ich mich nur falsch näher? Anstatt zu versuchen, die Maus, die Registerkarte oder das Textfeld in Dynamik zu konvertieren, sollte ich etwas anderes versuchen, um das gewünschte Ergebnis zu erzielen?

Danke, JC

War es hilfreich?

Lösung

Der einfachste Ansatz ist, die zu verändern TextField Geben Sie sich selbst ein und ändern Sie es dann selectable Eigentum:

//disable input
tf.selectable = false;
tf.type = TextFieldType.DYNAMIC;

//enable input
tf.selectable = true;
tf.type = TextFieldType.INPUT;

Vergessen Sie auch nicht, das zu setzen mouseEnabled & tabEnabled Eigenschaften, die für Ihre Felder geeignet sind.

Andere Tipps

Importieren Sie den TextFieldType ganz oben in Ihrer Klasse / Seite / Frame unter:

import flash.text.TextFieldType;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top