我有一個帶有UpdatePanel的aspx頁面。在代碼隱藏中,我定義了一個公共變量和函數。該函數使用輸入日期來計算數據庫中的公共var。在UpdatePanel回發後無法獲取服務器端var值
Public myRate As Decimal
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CalcT.Attributes.Add("onchange", "cstgst();")
'......
GetTaxRates()
End Sub
Public Function GetTaxRates() As Boolean
//this function get user input date to calc the data from database
Dim mydate As DateTime = UI.GetDate(DateInput.Text) //UI.GetDate is a function to convert string to datetime
'....
End Function
在aspx頁面,我設置TextBox,如:(的AutoPostBack,裏面的UpdatePanel)
<asp:UpdatePanel>
<asp:TextBox ID="DateInput" runat="server" AutoPostBack="true" ></asp:TextBox>
</asp:UpdatePanel>
然後我嘗試在JavaScript想獲得myRate:
function Test(){
var rate = '<%=myRate%>'
//....
}
,第一時間要加載此頁面,我可以爲myRate獲取正確的值。 但是,當我用新的日期值修改DateInput時,回調被觸發並且調用GetTaxRates()函數並在調試代碼和檢查值時在myRate中設置了正確的值。問題是JavaScript無法獲得這個新的價值。它總是獲得第一次的價值。
如何解決此問題?
謝謝。如何在UpdatePanel中移動javescript函數? 像下面這樣? 的 <的ContentTemplate> <腳本類型= 「文本/ JavaScript的」> // ... ContentTemplate> asp:UpdatePanel> –
KentZhou
2010-06-22 16:51:01
使用HiddenField的想法爲我工作。我嘗試了一切,繼續閱讀我的服務器端屬性暴露無濟於事:JS內的UpdatePanel本身,把JS放在另一個UpdatePanel和調用。更新它,虛無。。。我不得不使用建議的HF方法。 – atconway 2012-03-12 18:04:21