我想這不是一個大問題,因爲還有其他解決此問題的方法,但我真的很好奇答案,因爲我認爲這是可以做到的。在javascript中的服務器端變量
我有一個公共屬性,在我的代碼後面返回一個布爾值。我想在我的javascript驗證函數中訪問這個服務器變量,但到目前爲止,還沒有完全得到它。
Public Property editMode() As Boolean
Get
If Cache("editMode") IsNot Nothing Then
Return (DirectCast(Cache("editMode"), Boolean))
Else
Return False
End If
End Get
Set(ByVal value As Boolean)
Cache("editMode") = value
End Set
End Property
function validateEdit()
{
alert("editMode value is " + '<%#editMode()%>');
if ('<%#editMode()%>'.toString() == "True")
{
alert("You are currently in edit mode. Please save or cancel changes.");
return false;
}
return true;
}
我已經嘗試了一堆變化,但它總是假的。在當前的代碼警報返回「編輯模式值爲False」
當我使用:
if ('<%#editMode()%>') ...
然後它仍然總是假的,但它進入if條件,這樣的行爲就好像它是永遠是真的。
要提到的另一件事是,大多數JavaScript /服務器標籤的東西,我覺得說,使用<%=編輯模式%>,但因爲每次我用的=代替#我,我不能這樣做得到一個異常:
「Controls集合不能 修改,因爲該控件包含 代碼塊(即<%...%>)。」
所以我用#,說
Page.Header.DataBind()
Page.Form.DataBind()
在頁面加載事件處理程序解決了這個。
任何想法?先謝謝你。 :)
(另外,我通常使用C#,所以我可能會不知不覺地幹過的VB部分的東西愚蠢的,所以隨時指出這一點太)
何時以及如何將其設置爲True? – womp 2010-07-13 22:06:10
在代碼隱藏中,點擊按鈕。 – Brandi 2010-07-13 22:30:50