ล้างและรีเฟรชค่าในกล่องคำสั่งผสมที่เชื่อมโยงใน ext js

ฉันได้สร้างกล่องคำสั่งผสมที่เชื่อมโยงสองกล่องในการดึงข้อมูลต่อ js โดยใช้ json/ajax/php เมื่อเลือกค่า (ผู้ผลิตรถยนต์) ในกล่องคำสั่งผสมแรก กล่องคำสั่งผสมที่สองจะอัปเดตตัวเองด้วยรุ่นภายใต้ผู้ผลิตรายนั้น เช่น การเลือกโตโยต้าในคอมโบแรกจะอัปเดตอันที่สองด้วยค่าต่างๆ เช่น avensis, corolla, premio, ist เป็นต้น

อันดับแรก. ปัญหาที่กำลังเกิดขึ้นคือเมื่อฉันเลือกรายการในคอมโบแรกเช่น 'toyota' จากนั้นเลือกตัวอย่าง 'avensis' ในคอมโบที่สอง จากนั้นเปลี่ยนเป็นผู้ผลิตรายอื่น เช่น Mercedes Benz หาก Mercedes มีรุ่นอยู่ข้างใต้ เช่น C200, E500 ฯลฯ รุ่นเหล่านั้นจะแสดงในคอมโบที่สอง แต่ค่า 'avensis' ที่เลือกไว้ก่อนหน้านี้ยังคงเป็นค่าที่เลือกไว้ในคอมโบแรก ฉันจะล้างค่านั้นได้อย่างไร

ที่สอง. หาก json ที่ส่งคืนของฉันไม่มีค่า ค่าคอมโบที่สองจะไม่เปลี่ยนแปลง ฉันจะทำให้คอมโบที่สองว่างเปล่าได้อย่างไรหาก json ที่ส่งคืนมีค่าเป็น null นี่คือตัวอย่างโค้ดของฉัน:

xtype: 'combo',
                name: 'auto_make',
                id: 'auto_make',
                fieldLabel: 'Auto Make',
                store: auto_make_store,
                queryMode: 'local',
                displayField: 'name',
                valueField: 'id',
                listeners: {
                    "select": function(obj){ 
                        var makeid = obj.getValue();// value of selected combo item

                        Ext.Ajax.request({
                            url: '../includes/dhx_dataview.php?action=15&mk='+ makeid +'&sc=' + subid + '&ac=' + cat,
                            success: function (response) {
                                var data = Ext.decode(response.responseText).models;
                                auto_model_store.loadData(data);
//Do I clear/ refresh second combo here? How?
                            }
                        });
                    }


                }

ขอบคุณและ rgds


person nixxx    schedule 24.01.2013    source แหล่งที่มา


คำตอบ (2)


คุณสามารถลองสิ่งนี้ - นี่จะเป็นการรีโหลดคอมโบบ็อกซ์ของคุณ

{
 xtype: 'checkbox',
 //configs
 listeners : {
     checked : function (checkbox, checkedBool) {
     var yourCombo = Ext.getCmp(yourComboID);

     yourCombo.store.reload(
              {   
                 params: 
                     {yourParam : checkedBool},
                     {yourRowID : rowID}
                });
      }
  }
person Rachel Gallen    schedule 24.01.2013
comment
ฉันกำลังจัดการกับสองคอมโบ ไม่ใช่ช่องทำเครื่องหมายและคอมโบ ขออภัยสำหรับข้อผิดพลาดเบื้องต้น ฉันได้แก้ไขคำถามของฉันเพื่อสะท้อนถึงสิ่งนั้น Rgds - person nixxx; 24.01.2013
comment
เพื่อแจ้งให้ทราบ กล่องคำสั่งผสมจะโหลดซ้ำและแสดงข้อมูลตามที่คาดไว้ ฉันไม่มีปัญหาในการโหลดข้อมูลลงในคอมโบ ปัญหาที่กำลังประสบคือการล้างค่าที่เลือกไว้ก่อนหน้านี้ในไดนามิกคอมโบบ็อกซ์ เพื่อให้สามารถแสดงค่าใหม่ได้ - person nixxx; 25.01.2013

คุณอาจลองเพิ่ม forceSelection: true กับคอมโบบ็อกซ์ของคุณ ซึ่งจะต้องมีค่าที่เลือกอยู่ในร้านค้าที่ถูกผูกไว้

person existdissolve    schedule 24.01.2013