如何在按钮单击时更新extjs窗口

时间:2011-05-18 12:45:01

标签: extjs

目前我遇到以下问题。

我成功调用此ajax请求后显示。

function callDesignWindow(){
var serviceType = $("#serviceType").val();
alert(serviceType);
var ptId = $("#pt_id").val();
alert(ptId);
getAjaxPage({
    url : "/ajax/NewEform/design.do?serviceType=" + serviceType +"&ptId =" + ptId,
    successCallback: function (data) {
       showDesignWindow(data);
    }
});         
searchVisible = true;

}

function showDesignWindow(htmlData){

   alert(" In the show Design Window");

   var designWindow =  new Ext.Window({
        title: "E-Form Design Phase",  
        width:650, 
        autoHeight: true,
        id:'designWindow',
        html: htmlData,
        closable: false,
        y: 150,
        listeners: { 
            beforeclose: function () { 
                searchVisible = false;                      
            } 
        },
        buttons: [
                 { 
                     text: 'Add Control', handler: function() {
                        saveFormControl();
                     }
                 },
                 {
                     text:'Customize', handler: function() {
                        designWindow.hide();                            
                        callCustomWindow();
                     }
                 }
                ]   
  });

   designWindow.show(this);

}

function saveFormControl(){

    alert(" add control button clicked");

    if (!validateEformData()) return false;

    formname= $("#formname").val();
    alert(formname);
    controlType= $("#controlType").val();
    alert(controlType);
    label= $("#labelname").val();
    alert(label);
    dataType= $("#dataType").val();
    required= $("#required").val();
    serviceType= $("#serviceType").val();
    ptId = $("#ptId").val();
    if(controlType == 3){
    var itemList = []; 
    $("#selectedItemLists option").each(function(){
       itemList.push($(this).val()); 
    }); 
    }

    data = "eform_name=" + formname + "&control=" + controlType + "&serviceType=" + serviceType +"&ptId=" + ptId +"&labelName=" +label+ "&dataType=" +dataType+"&required="+required+"&items="+itemList;

    alert(data);

    $.ajax( {
        type : "POST",
        url : "/ajax/eformDetails/save.do",
        data : data,
        cache : false,
        dataType : "text/html",
        timeout: 40000,
        error: function (xhr, err)
        {
            resolveAjaxError(xhr, err);
        },
        success : function(data) {
         // Ext.getCmp('designWindow').close();
             // showDesignWindow(data); 
        }
    });    

}

现在成功调用ajax调用(“/ ajax/eformDetails/save.do”)我想更新designWindow并重置值。

请帮助我。

1 个答案:

答案 0 :(得分:0)

如果您希望在创建designWindow之后能够操作它们,则需要在某处维护对它的引用,或者利用Ext.getCmp方法(I会推荐后者。例如,在你的成功函数中:

success: function () {
    var myWindow = Ext.getCmp('designWindow');
    //do whatever changes you would like to your window
}