2012-03-17 5 views
0

aspx 페이지에 문제가 있습니다. 흥미로운 점은 이전에 작동했지만 지금은 그렇지 않습니다. 나는 aspx 페이지에서 서버 측 메소드를 호출 할 : 여기 내 영문 코드는 다음과 같습니다서버 쪽 메서드를 호출 할 수 없습니까?

<asp:TextBox ID="lblo" runat="server" Text='<%#GetPanelImageURL()%>' ></asp:TextBox> 

그리고 내 서버 측 코드 :

public string GetPanelImageURL() 
{ 
    return "asdasd"; 
} 

이 아무도 도움 working.Can되지 않는 이유는 무엇입니까?

답변

1

<%# .. %>은 데이터 바인딩 식에 사용됩니다. 데이터 바인딩 표현식은 DataBind 컨트롤 또는 Page 클래스의 메서드를 호출하면 해결됩니다. GridView, DetailsViewFormView 컨트롤과 같은 컨트롤의 경우 데이터 바인딩 표현식은 컨트롤의 PreRender 이벤트 중에 자동으로 해결되며 메서드를 명시 적으로 호출하지 않아도됩니다 (here).

따라서이 컨트롤에 DataBind 메서드를 호출하면이식이 계산되지 않습니다.

+0

좋습니다.이 상황에 적합한 조언이 있습니까? –

+0

방금 ​​찾았습니다. 페이지의 bind 메소드를 호출하고 작업했습니다 .Page.DataBind(); –

+0

@Aykut, 귀하의 논리에 따라 다릅니다. 당신은 당신의 텍스트 박스를 포함하는 페이지/컨트롤을 위해'DataBind()'를 호출하거나'lblo.Text = GetPanelImageURL()'처럼 코드 - 행동에서 값을 설정할 수 있습니다 – Alex

0

<%= GetPanelImageURL() %>

+0

서버 태그는'<%= ... %>'구조를 허용하지 않습니다 – Alex

관련 문제