2017-04-10 2 views
0

ExtJSボタンの動作に関する問題があります。クリックすると、特定のコントローラを呼び出すことになっています。私の問題:私はダイアログボックスを追加して、ユーザーに自分の行動を確認するように要求する必要があります(たとえば、あなたは本当に印刷しますか?YES/NO)。コード例の最初のボタンは古いものですが、2番目のボタンは変更しようとしています。スニペットのコードは現在ダイアログボックスを表示していますが、YESまたはNOをクリックすると何もしません。ExtJSボタンの動作方法を変更するにはどうすればよいですか?

私はExtJSの専門家ではありません(私のフレームワークの理解は間違っている可能性があります)ので、心に留めてください。あなたが好きなコールバック関数を追加する必要が

this.buttons = [{ 
      text:'Print', 
      action:'print', 
      iconCls:'icon-excel', 
      href: 'print/someFile.docx' 
     },{ 

      text:'Print', 
      handler:function(){ 

       Ext.MessageBox.confirm({ 
        title:"Print", 
        msg:"Are you sure about this?", 
        buttons: Ext.Msg.YESNO, 
        action:'print' 
        href: 'print/someFile.docx', 
        icon: Ext.Msg.QUESTION 

     }); 
     },    
     }]; 
+0

ねえ、あなたは、この例のいくつかのフィドルを作成してくださいすることができますか? – Tejas

+0

確認はコントローラに入力する必要があります。どのようにしてコントローラーメソッドにアクションを接続しますか? –

+0

@EvanTrimboliはパズルの重要な部分に感謝します。 –

答えて

0

Ext.MessageBox.confirm({ 
    title:"Print", 
    msg:"Are you sure about this?", 
    buttons: Ext.Msg.YESNO, 
    action:'print' 
    href: 'print/someFile.docx', 
    icon: Ext.Msg.QUESTION, 
    fn: function(btn) { 
     if (btn === 'yes') { 
      console.log('Yes pressed'); 
     } else if (btn === 'no') { 
      console.log('No pressed'); 
     } 
    }  
}); 
+0

記録のために:私は技術的にこれが仕事を終わらせる方法であることを知りました。しかし、私のケースでは、@Evan Trimboliが提案したように、この意思決定をコントローラに入れなければならない特定の状況がありました。皆さんのお手伝いをありがとうございます。 –

関連する問題