2012-10-04 47 views
1

問題在於,我在用戶控件內部有一個Modal PopUp Extender,該控件在主頁面內從頁面內的其他用戶控件調用。頁面在第二次加載第一個用戶控件時,當我想要顯示模式對話框時,它會將用戶控件加載到佔位符中並在加載模式彈出用戶控件時調用模式的顯示方法。Modal PopUp中OK按鈕的事件處理程序未執行

模態內部我有一些文本框和一個按鈕來保存一些數據到數據庫中。

問題是Buton onClick事件根本不會觸發。我嘗試在模態控件的Onload事件中添加一個斷點,但是,如果我在父用戶控件的載入事件(持有模態彈出窗口的事件)中放置另一個斷點,它就不會進入那裏,奇怪的是,斷點在父用戶控件的OnLoad事件中確實停止。我需要使用事件處理程序,因爲我在這裏調用存儲過程將數據保存到數據庫中。

請注意,我不想只關閉modalpopup窗口,我想驗證一些文本框,然後將一些數據保存到數據庫中,這就是爲什麼我必須在ethe事件處理程序的按鈕。

Thaks的支持

+2

你可以在你的問題中添加一些代碼,以便人們可以看到你在處理什麼? – HaemEternal

回答

0

下面是我在一個應用程序,我需要一個模式對話框使用的功能。該按鈕由jQuery代碼實際產生的,所以它保證他們的活動被解僱:

$(function() { 
      $(".addNew").dialog({ 
       autoOpen: false, 
       width: 300, 
       height: 300, 
       modal: true, 
       close: function (event, ui) { 
      }, 
      buttons: 
        { 
         "Exclude Week": function() { 

          var cReason = $('#<%= ddlReasonCode.ClientID %> option:selected').text(); 
          var Week = $('#<%= lblWeekChange.ClientID %>').text(); 

          $.ajax(
            { 
             type: "POST", 
             url: "Ajax/ExcludeWeek.aspx", 
             data: "week=" + Week + "&reasonCode=" + cReason, 
             success: function (msg) { 
              $('#resultDiv').text('Added to List'); 

             }, 
             error: function (x, e) { 
              alert("The call to the server side failed. " + x.responseText); 
             } 
            } 
           ); 
            $(this).dialog("close"); 
         }, 
         "Cancel": function() { 
          $(this).dialog("close"); 
         } 
        } 
     }); 


    }); 

//這是用來觸發對話框代碼:

$(".addNew").dialog("open"); 
0

它可能是遲到了給定的情景,但在我的項目中升級AjaxControlToolikit版本後,我遇到了同樣的問題。

問題是ModalPopupExtender屬性OkControlID:在較新版本的工具包服務器端,單擊按鈕的處理程序不會執行,它將運行,而是OnOkScript客戶端代碼。

要恢復舊的行爲,在我的情況下,我不得不從模式彈出擴展名聲明標記中刪除OkControlID屬性。

希望它有幫助。