2011-06-02 157 views
5

情景1(即有效) 這是我創建的POC。 我有一個腳本管理器,一個html文本框,一個ASP.NET按鈕,一個帶有爲上述按鈕的Click事件設置的異步觸發器的updatepanel。對於我的HTML文本框,onkeyup='__doPostBack('<%=ASPBUTTON.ClientID%>','')。 AND IT WORKS,點擊按鈕的Click事件,並且updatepanel異步更新。__dopostback不按預期工作

方案2(它不工作) 與我的實際代碼庫的唯一區別是,我有一個jQuery FILAMENTGROUP的DateTimePicker其onchange事件被用來代替HTML文本框的平變化。此外,在這裏我的頁面使用母版頁。現在,我的問題是,當datetimepicker的onchange事件觸發時,請求會轉到服務器端,但BUTTON單擊事件不會被觸發。

一些更多的細節, 我想在datetimepicker選擇自動更新updatepanel。所以,按鈕實際上是通過css隱藏的(display:none)。

按鈕的ID - btnDateRangeCallback

dateTimePicker的文本框(非ASP控制) - DATERANGE

 onChange: function() {__doPostBack('<%=btnDateRangeCallback.ClientID%>', $('#dateRange').val());} 

[請記住我說的話工作在我的簡單的POC的情況,而在我的實際代碼庫我是使用母版頁繼承,所有這些控件都放置在一個contentplaceholder中。此外,回發正在發生,我可以看到_EVENTTARGET和_EVENTARGUMENT被正確發送,如果我在Page_Load中斷]

請幫忙。

要說得簡單些, 回傳後,當我在Page_Load中突破,我看到的Request.Form內容, ctl00%24ContentPlaceHolder1%24SMgr1 = ctl00%24ContentPlaceHolder1%24SMgr1%7cctl00_ContentPlaceHolder1_btnDateRangeCallback & __EVENTTARGET = ctl00_ContentPlaceHolder1_btnDateRangeCallback & _ EVENTARGUMENT = 5%2F3%2f2011 + - + 6%2F2%2f2011 & _VIEWSTATE =%2fwEPDwULLTE3NDY5NDIwMDRkZIuTqMNNsFHlRYhjpKaUCaCXj42h & _ EVENTVALIDATION =%2fwEWAgLBx52kBALP6Ln6DdkkwE%2frVIKQzKE1L0k4QhIc768w & _ASYNCPOST =真&

爲什麼不點擊事件btnDateRangeCallback打???

回答

5

使用UniqueID來代替:__doPostBack('<%=btnDateRangeCallback.UniqueID %>', ...

+0

非常簡單,真實。謝謝!!! – EagerToLearn 2011-06-03 08:02:50

0

爲什麼不只是點擊按鈕?

onchange="$('#<%= ASPBUTTON.ClientID %>').click()" 

(理想情況下,不使用內聯事件處理程序要麼...)

如果沒有對你有好處,你可以解決它使用__EVENTTARGET__EVENTARGUMENT(見this article的指南)。

+0

嗨鎮,謝謝。我更新了問題上下文。請看看 – EagerToLearn 2011-06-02 11:23:43