문제

이 문제에 대한 다른 방법이 있기 때문에 이것은 거대한 거래가 아니라, 나는 이것이 가능하다고 생각한 이래로 답변에 관한 것입니다.

코드에서 부울을 반환하는 공개 속성이 있습니다. 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 값이 거짓"

를 반환합니다.

사용할 때 :

if ('<%#editMode()%>') ...
.

여전히 항상 거짓이지만, IF 조건으로 들어갑니다. 그래서 동작은 항상 사실 인 것처럼 보입니다.

다른 것들은 <%= EditMode %> 을 사용하는 것이 대부분의 JavaScript / Server 태그 태그가 발견되지만 대신= 대신 사용할 때 마다이 작업을 수행 할 수는 없습니다. # of # i는 예외를 얻습니다 :

"컨트롤 컬렉션은 일 수 없습니다 컨트롤이 포함되어 있기 때문에 수정되었습니다 코드 블록 (즉, <% ... %>). "

그래서 나는 그것을 사용하여 이것을 해결하고

를 말하면 이것을 해결했습니다.
    Page.Header.DataBind()
    Page.Form.DataBind()
.

페이지로드 이벤트 처리기.

아이디어가 있습니까? 미리 감사드립니다. :)

(또한 나는 보통 C #을 사용하므로 VB 부분에서 무의식적으로 뭔가를 밟을 수 있으므로, 그렇게 자유롭게 그것을 지적하고 그것을 지적하게하십시오)

도움이 되었습니까?

해결책 2

이렇게하면 오류가 해결되었습니다. 컨트롤 컬렉션을 수정할 수 없습니다컨트롤에는 코드 블록이 들어 있습니다. "

JavaScript 기능을 헤드에서 꺼내면 몸체로 문제를 해결합니다.이 문제를 일으킬 수있는 몇 가지 일이있는 것 같지만, 내 경우에 가장 큰 범인은 AjaxToolkit입니다.

다른 팁

먼저 다음으로 변경하십시오.

<%=editMode()%>
.

그게 그것이 있는지 확실하지는 않지만 상처를 줄 수는 없습니다.둘째, 페이지를 처음로드 할 때 편집 모드에 있습니까?해당 코드는 서버 측을 실행하고 결과를 사용자에게 반환 할 것입니다.

사용자 페이지에서 볼 수 있습니다 :

function validateEdit()
{
    alert("editMode value is " + 'False');
    if ('False'.toString() == "True")
    {
        alert("You are currently in edit mode. Please save or cancel changes.");
        return false;
    }
    return true;
}
.

다시, 그 in 그것이 있는지 확실하지는 않지만 JavaScript가 서버에 대한 호출을하지 않는다는 것을 이해하는 것이 중요합니다.

한 가지 더.

문자열을 다른 문자열로 변환하는 것을

로 인식합니다.
'<%#editMode()%>'.toString() 
.

오른쪽?

당신이 원하는 것은 이것이 이것이

이라고 생각합니다.
if ('<% =editMode.toString() %>'= 'True')...
.

또는 더 나은 아직

if (<% =editMode.toString().ToLower() %>)...
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top