2017-03-28 5 views
1

セルの値を変更するためにカスタムグリッドがあり、一部のセルにはセルエディタExt.form.TextFieldがあります。ここで はTextFieldを定義する方法です。form.textfieldのフォーカスを失った後に値が表示されない

var labelTextEditor = new Ext.form.TextField({ 
    allowBlank: false, 
    maxLength: 256, 
    id: "labelTextEditor", 
    maxLengthText: Label.conf.ui.javascript.TooLongText, 
    validateOnChange: true, 
    validator: function(value) { 
     console.log(value); 
     if (value == "" && value.trim() == "") { 
      return formatMessage(Label.conf.ui.supv.LabelMandatory); 
     } else 
      return true; 
    }, 
    msgTarget: 'under', 
    listeners: { 
     focus(a, event, eOpts){ 
      var rowIndex = customFieldGrid.getSelectionModel().getCurrentPosition().row; 
      if(rowIndex !== undefined && rowIndex !== null){ 
       a.setValue(view.listOfServiceDefinition[0].customFields[rowIndex].labels[userLanguagePrefix]); 
      } 
     }, 
     blur(a, event, eOpts){ 
      var cellValue = a.getValue(); 
      if(cellValue !== undefined && cellValue !== null){ 
       a.setValue(cellValue); 
      }else{ 
       a.setValue(""); 
      } 
     } 
    } 
}); 

私は、細胞に焦点を当てた場合、それは、セルに焦点を当てて前にあった値フォーカスリスナーのおかげで私を続けています。しかし、私がフォーカスを失うと、細胞は何も表示しません。これをクリックすると、値が再び表示され、編集することができます。だから問題は、私がフォーカスを失ったときに、値をセルに表示し続けることができないということです。イベントをぼかそうとしましたが、役に立たなかった...

答えて

2

問題はblurイベントです。 As Per Documentationblurイベントこのコンポーネントがフォーカスを失ったときに発生します。あなたの場合は、あなたのぼかしイベントが発砲しているフォーカスを失うとき。あなたのぼかしイベントで見ることができるように、あなたはいくつかの他の値を設定しています。そのため、空になっています。

このラインはあなたのコードで問題を引き起こしている:

else{ 
    a.setValue(""); 
    } 

私もblurfocusを理解する一つのシオマネキを作成しました。

Fiddle

関連する問題