2017-03-09 11 views
0

これは愚かな質問ですが、私はこれを聴きたいと思っていますか?それはぼかしですか?テキストフィールドのフォーカスが外れているリスナーは何ですか

私はそれを試しましたが、誰かが私の構文を正しいものにすることができますか、何が間違っているのですか。それを修正してください。素晴らしいだろう。おかげで、事前に

どのように、誰もが簡単なフィドルを試すことができ、それを使用するべきでも

https://fiddle.sencha.com/#view/editor&fiddle/1ro8

、ここではすでに利用可能なフィドルを試してみてください。

Ext.application({ 
    name: 'Fiddle', 

    launch: function() { 
     run(); 
    } 
}); 

function run() { 
    var myStore=Ext.create('Ext.data.Store', { 
     storeId: 'simpsonsStore', 
     fields: ['busname', 'time', 'typebus',], 
     pageSize:2, 
     proxy: { 
      type: 'memory', 
      enablePaging: true 
    }, 
     data: [{ 
      busname: 'ABCD', 
      time: '15:30:00', 
      typebus: 'AC Volvo', 

     }, { 
      busname: 'aaa', 
      time: '13:30:00', 
      typebus: 'Seater', 

     },{ 
      busname: 'AAAA', 
      time: '18:30:00', 
      typebus: 'Sleeper', 

     },{ 
      busname: 'ABCD', 
      time: '19:30:00', 
      typebus: 'AC Volvo', 

     },] 
    }); 

    Ext.create('Ext.grid.Panel', { 
     xtype :'gridpanel', 
     itemId:'busTimegrid', 
     pageSize:1, 
     title: 'BUS DEATILS', 
     mapperId:'getBusTime', 
     store: Ext.data.StoreManager.lookup('simpsonsStore'), 
     columns: [{ 
      header: 'Bus Name', 
      dataIndex: 'busname', 
      editor: 'textfield' 
     }, { 
      text: 'Bus Time', 
       dataIndex: 'time', 
      xtype: 'gridcolumn', 
      renderer: function (value) { 
       if (value instanceof Date) 
              return Ext.util.Format.date(value, 'H:i:s'); 
          else 
          return value; 
      }, 
      flex: 1, 
      editor: { 
       xtype: 'timefield', 
       format: 'H:i:s', 
       allowBlank: true, 
       maskRe: /[0-9,:]/, 
      } 
     }, { 
      header: 'Bus TYpe', 
      dataIndex: 'typebus', 
      editable:true, 
      renderer: function (value) { 
       if (Ext.isNumber(value)) { 
        var store = this.getEditor().getStore(); 
        return store.findRecord('id', value).get('name'); 
       } 
       return value; 
      }, 
      editor: { 
       xtype: 'combo', 
       displayField: 'name', 
       valueField: 'id', 
       editable:true, 
       forceSelection:true, 
       store: Ext.create('Ext.data.Store', { 
        fields: ['id', 'name'], 
        data: [{ 
         id: 1, 
         name: 'AC Volvo' 
        }, { 
         id: 2, 
         name: 'Seater' 
        }, { 
         id: 3, 
         name: 'Sleeper' 
        }] 
       }) 

      } 
     }], 
     selModel: 'cellmodel', 
     plugins: { 
      ptype: 'cellediting', 
      clicksToEdit: 1, 
     }, 
     height: 200, 
     width: 400, 
      dockedItems: [{ 
      xtype: 'pagingtoolbar', 
      store: myStore, // same store GridPanel is using 
      dock: 'bottom', 
      displayInfo: true 
     }], 
     renderTo: Ext.getBody() 
    }); 

    init:function(application){ 
     this.control({ 
      'Fiddle textfield#busname':{ 
       blur:this.onFieldBlur 
      } 
     }); 
    } 
    onFieldBlur:function(textfield, event, options) { 
    textfield.setValue(textfield.getValue().toUpperCase()); 
} 
+0

itemIdが '#busname'のアイテムのセレクタを作成しています。このコンポーネントがどこにあるのかわからないので、セレクタが間違っています。 – qmateub

+0

あなたはちょうどそれを修正することができますバディ、私は少し弱く、この技術で新鮮です。 –

+0

これはどのように動作するのか、つまり、あなたのコードで間違っていることを指摘して、それを修正するヒントを与えることを指摘しました。あなたは 'blur'イベントを聞いているので、リスナーはうまくいきますが、聞きたいコンポーネントを正しく対象としていないという問題があります。 'Fiddle textfield#busname'その行が問題です。セレクタがSenchaでどのように機能しているかを確認してください。まだ解決策がない場合は、戻ってきてもう一度試してみましょう。 – qmateub

答えて

0

あなたが探しているセレクターはtextfield[dataIndex=busname]です。しかし、私はそのルートに行くのではなく、むしろgrid/'roweditor / celleditor OR even Model.Field :: convert`装飾を使用します。本当にそのようextコードを書くことをお勧めはありませんが

あなたのフィドルは、このようなものである必要があります。)

var myStore=Ext.create('Ext.data.Store', { 
    storeId: 'simpsonsStore', 
    fields: ['busname', 'time', 'typebus',], 
    pageSize:2, 
    proxy: { 
     type: 'memory', 
     enablePaging: true 
}, 
    data: [{ 
     busname: 'ABCD', 
     time: '15:30:00', 
     typebus: 'AC Volvo', 

    }, { 
     busname: 'aaa', 
     time: '13:30:00', 
     typebus: 'Seater', 

    },{ 
     busname: 'AAAA', 
     time: '18:30:00', 
     typebus: 'Sleeper', 

    },{ 
     busname: 'ABCD', 
     time: '19:30:00', 
     typebus: 'AC Volvo', 

    },] 
}); 

機能の実行(){

Ext.create('Ext.grid.Panel', { 
    xtype :'gridpanel', 
    itemId:'busTimegrid', 
    pageSize:1, 
    title: 'BUS DEATILS', 
    mapperId:'getBusTime', 
    store: myStore, 
    columns: [{ 
     header: 'Bus Name', 
     dataIndex: 'busname', 
     editor: 'textfield' 
    }, { 
     text: 'Bus Time', 
      dataIndex: 'time', 
     xtype: 'gridcolumn', 
     renderer: function (value) { 
      if (value instanceof Date) 
             return Ext.util.Format.date(value, 'H:i:s'); 
         else 
         return value; 
     }, 
     flex: 1, 
     editor: { 
      xtype: 'timefield', 
      format: 'H:i:s', 
      allowBlank: true, 
      maskRe: /[0-9,:]/, 
     } 
    }, { 
     header: 'Bus TYpe', 
     dataIndex: 'typebus', 
     editable:true, 
     renderer: function (value) { 
      if (Ext.isNumber(value)) { 
       var store = this.getEditor().getStore(); 
       return store.findRecord('id', value).get('name'); 
      } 
      return value; 
     }, 
     editor: { 
      xtype: 'combo', 
      displayField: 'name', 
      valueField: 'id', 
      editable:true, 
      forceSelection:true, 
      store: Ext.create('Ext.data.Store', { 
       fields: ['id', 'name'], 
       data: [{ 
        id: 1, 
        name: 'AC Volvo' 
       }, { 
        id: 2, 
        name: 'Seater' 
       }, { 
        id: 3, 
        name: 'Sleeper' 
       }] 
      }) 

     } 
    }], 
    selModel: 'cellmodel', 
    plugins: { 
     ptype: 'cellediting', 
     clicksToEdit: 1, 
    }, 
    height: 200, 
    width: 400, 
     dockedItems: [{ 
     xtype: 'pagingtoolbar', 
     store: myStore, // same store GridPanel is using 
     dock: 'bottom', 
     displayInfo: true 
    }], 
    renderTo: Ext.getBody() 
}); 

this.control({ 
     'textfield[dataIndex=busname]':{ 
      blur:function(textfield, event, options) { 
       debugger; 
       textfield.setValue(textfield.getValue().toUpperCase()); 
      } 
     } 
    }); 

}

外部アプリケーション({ の名前: 'Fiddle'、

launch: function() { 
    run.apply(this,[]); 
} 

});

関連する問題