Я полагаю, что это не так уж и сложно, так как есть другие способы решения этой проблемы, но мне действительно интересно узнать об этом, поскольку я думал, что это можно сделать.Переменные сервера на стороне 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. В текущем коде возвращается бдительной «значение Editmode является Ложным»
Когда я использую:
if ('<%#editMode()%>') ...
Тогда он по-прежнему всегда Ложный, но он переходит в, если условие, так что поведение, как если бы это было всегда правда.
Еще одна вещь, чтобы отметить, что тег большинство JavaScript/сервер вещи я считаю, говорит использовать <% = Editmode%>, но я не могу это сделать, потому что каждый раз, когда я использую = вместо # I получить исключение:
"коллекция Controls не может быть изменено, поскольку элемент управления содержит блоки кода (т.е. <% ...%>)."
Так что я решил эту проблему с помощью # и говоря
Page.Header.DataBind()
Page.Form.DataBind()
В обработчик события загрузки страницы.
Любые идеи? Заранее спасибо. :)
(Кроме того, я обычно использую C#, так что я мог бы неосознанно сделать что-то глупое в VB части, так что не стесняйтесь, чтобы указать, что слишком)
Когда и как вы устанавливаете значение True? – womp
В кодовом замке, при нажатии кнопки. – Brandi