2012-08-14 67 views
1

我正在將我的搜索功能移到jquery對話框中。從jQuery對話框調用服務器端方法

我原本

使用下面的搜索框位於由姓

搜尋:  搜索

我已經添加了以下javascript:

 var dlgSearch = $("#SearchDialog").dialog({ 
     autoOpen: false, 
     zIndex: 9999, 
     bgiframe: true, 
     resizable: false, 
       width: 450, 
     modal: true, 
     overlay: { 
      backgroundColor: '#000', 
      opacity: 0.5 
     }, 
     buttons: { 
     'Search': 
     function() { 
      <%= Page.ClientScript.GetPostBackEventReference(btnSearch, String.Empty) %>; 
     }, 

      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }); 

    dlgSearch.parent().appendTo($("form:first")); 

這工作正常。但是現在我將2個搜索按鈕呈現給瀏覽器。原始的一個呈現與標記,並與jQuery對話框實例化呈現的按鈕。我想擺脫使用服務器端標記呈現的一個,只使用jQuery的一個。

問題是,如果我刪除標記,GetPostBackEventReference調用時會出現編譯錯誤,因爲控件btnSearch不再存在。

我可以一直使用CSS來設計btnSearch,並使其顯示:無,但這似乎是解決問題的骯髒方法。

沒有一種方法來調用服務器端方法,而不是將它綁定到控件事件? 請注意,我不想要ajax回調方法,我需要實際上有一個回發。

回答

1

在客戶端使用此:__doPostBack("SearchDialog", "");,這對服務器:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack && Request.Form["__EVENTTARGET"] == "SearchDialog") 
    { 
     //your code here 
    } 
} 
相關問題