2011-06-19 12 views
5

क्या Ext.MessageBox में डिफ़ॉल्ट बटन (एंटर दबाकर ट्रिगर किया गया) को हाइलाइट करने के लिए एक अतिरिक्त स्वीकृत तरीका है?ExtJS (3.x) में डिफ़ॉल्ट बटन हाइलाइट करें संदेशबॉक्स

कृपया ध्यान दें कि जब मैं संदेश बॉक्स दिखाता हूं तो बटन को ध्यान में रखते हुए मैं ऐसा नहीं करना चाहता (एक "प्रॉम्प्ट" संवाद के मामले में मैं इनपुट तत्व को ध्यान केंद्रित करना चाहता हूं)।

मुझे पता है कि मैं बटन तत्व में एक कस्टम क्लास जोड़कर ऐसा कर सकता हूं लेकिन ... शायद ऐसा करने का एक बेहतर और अधिक विस्तारित तरीका है?

धन्यवाद।

उत्तर

4

संक्षेप में ... नहीं। एक्स वर्तमान में किसी भी Ext.MessageBox घटकों में बटन को हाइलाइट करने की कोई विधि प्रदान नहीं करता है, वैसे भी कॉन्फ़िगरेशन विकल्प के माध्यम से नहीं।

हालांकि, परिदृश्य के आधार पर तरीके हैं। उदाहरण के लिए, यदि आप Ext.MessageBox.show() (जो आप वास्तव में सभी संदेश बॉक्स के लिए उपयोग कर सकते हैं) का उपयोग कर रहे हैं, तो आप कुछ की तरह कर सकते हैं ...

new Ext.Msg.show({ 
    title: 'Test', 
    msg: 'A sample message box with a button marked as default', 
    buttons: { ok: '<b>Submit</b>', cancel: 'Cancel' }, 
    fn: function(btn) { 
     if(btn == 'ok') { 
      //do something 
     } 
    }, 
    icon: Ext.Msg.WARNING 
} 

सभी हम किया है से एक के लिए <b> टैग जोड़ने है हमारी कॉन्फ़िगरेशन में बटन, यह स्पष्ट रूप से बोल्ड में दिखाएगा।

आपने जिस तरह से उल्लेख किया है, वह एक कस्टम क्लास जोड़ने और पाठ के रंग में बटन को चिह्नित करना है, आप इसे आसानी से बनाने के लिए उपरोक्त <b> टैग के साथ कक्षा को भी जोड़ सकते हैं ..

buttons: { ok: '<span class="highlighted-option">Submit</span>', cancel: 'Cancel' },

दृष्टिकोण की इस शैली के अलावा, या Ext.MessageBox वर्ग के विस्तार के बिना, वहाँ इस लक्ष्य को हासिल करने के लिए कोई दूसरा रास्ता नहीं है।

1

जैत्सु का सबसे अच्छा जवाब है, लेकिन यदि यह किसी और के लिए उपयोगी हो सकता है ... यहां शैलियों के साथ ऐसा करने का एक तरीका है। एक ही चाल किसी अन्य बटन पर लागू की जा सकती है (जैसे: विंडो बटन)।

अपने सीएसएस करने के लिए इस जोड़ें:

.x-btn-default td.x-btn-mc { 
    outline: 1px dotted black; 
} 

तो इस तरह बटन निर्धारित:

Ext.MessageBox.defaultButton = buttonIndex; 

कहाँ:

... 
    ,buttons: [ 
    { 
     text: 'Ok', 
     ,handler: handleFn 
     ,cls: 'x-btn-default' 
    },{ 
     text: 'Cancel', 
     ,handler: handleFn 
    } 
    ] 
    ,... 
7

ExtJs 4 में आप इस प्रकार डिफ़ॉल्ट बटन सेट कर सकते हैं 'बटन इंडेक्स' संवाद पर बटन की अनुक्रमणिका है। Ext.MessageBox.Show को कॉल करने से पहले आपको ऐसा करने की ज़रूरत है।

+0

आप उस सूचकांक को कैसे प्राप्त करते हैं? – Armance

+1

मुझे हाथ से याद नहीं है कि बटन बेस इंडेक्स 0 या 1 पर शुरू होते हैं, लेकिन यह फ़ूटर बार में बटनों की संख्या (बाएं से गिनती) पर आधारित है। उदाहरण के लिए (शून्य आधारित इंडेक्स मानते हुए), यदि आपके पास 'हां' है, तो 'नहीं' फूटर बार में बटन के रूप में, 'हां' पहला बटन (सूचकांक 0) और 'नहीं' दूसरा बटन (अनुक्रमणिका 1) होगा। उम्मीद है की यह मदद करेगा। – Rohland

+0

यह 1 से शुरू होता है, बहुत बहुत धन्यवाद :) – Armance

संबंधित मुद्दे