【发布时间】:2011-03-15 14:05:55
【问题描述】:
我想这没什么大不了的,因为还有其他方法可以解决这个问题,但我真的很好奇答案,因为我认为这是可能的。
我有一个公共属性,它在后面的代码中返回一个布尔值。我想在我的 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;
}
我已经对此尝试了很多变体,但总是错误的。在当前代码中,警报返回“editMode 值为 False”
当我使用时:
if ('<%#editMode()%>') ...
那么它仍然始终为 False,但它进入了 if 条件,因此行为就好像它始终为 true。
要提的另一件事是,我发现的大多数 javascript/server 标签内容都说要使用 ,但我不能这样做,因为每次我都使用 =的 # 我得到一个例外:
"Controls 集合不能 修改,因为控件包含 代码块(即 )。”
所以我通过使用 # 并说
解决了这个问题 Page.Header.DataBind()
Page.Form.DataBind()
在页面加载事件处理程序中。
有什么想法吗?先感谢您。 :)
(另外,我通常使用 C#,所以我可能在 VB 部分不知不觉中做了一些愚蠢的事情,所以也请随时指出)
【问题讨论】:
-
您何时以及如何将其设置为 True?
-
在代码隐藏中,单击按钮。
标签: javascript validation server-variables