2017-03-07 58 views
0

我有一個UpdatePanel我已經決定嘗試,我認爲所有的行爲將受到asp.net機制JavaScript時關閉照顧。其中一種行爲是在更改下拉列表或複選框時進行一些UI更改。這些更改揭示了表單的某些部分或更改了某些控件的文本。當JS啓用,我AutoPostback="true"上的複選框屬性使得它的變化事件更新的形式,就像它需要。未啓用JS然而,當,它什麼都不做 - 我想它恢復之前,我開始使用UpdatePanel它有一種行爲 - 這是與更新服務器數據每次刷新頁面。是否可以對UpdatePanel屬性進行任何調整以實現這種回退解決方案?ASP.NET web窗體:UpdatePanel no-js後備for AutoPostback?

(不,這不是手頭工作的真正需求,但我期望asp.net的服務器控件首先會自動解決這類問題,所以我想知道如果有某種方式)

+0

[淨的UpdatePanel和禁用JavaScript(的可能的複製http://stackoverflow.com/questions/3258063/net-的UpdatePanel和JavaScript的禁用) – Seano666

回答

1

當您禁用JavaScript時,ASP.net autopostback屬性和功能不起作用的原因是它實際上使用JavaScript代碼來執行其功能。 具體來說它生成下面的JavaScript代碼:

一個。具有名稱的Java腳本方法

__doPostBack (eventtarget, eventargument) 

b。帶名稱的兩個隱藏變量__EVENTTARGET

__EVENTARGUMENT 

c。 OnChange JavaScript事件來控制

如果您使用瀏覽器的調試器和搜索這些,你會看到他們是如何實現的。 這裏是進入進一步的細節一個很好的資源: http://www.dotnetspider.com/resources/189-AutoPostBack-What-How-works.aspx

回傳基本上重新提交頁面請求,但保留視圖狀態的哪些部分得到更新,更新面板控件。

要回答你的問題有沒有辦法實現AJAX類型的功能沒有啓用JavaScript

+0

謝謝你,但我希望他們做了它的工作,或使設置有一個UpdatePanel裏面的內容,例如他們會在UpdatePanel之外寫入時在回發指令行事。這將擴展各種邊際設備的功能,並使其不必爲此類任何特殊代碼編寫代碼。如果有人真的需要,我想有辦法解決這個問題。 –