2014-10-01 4 views
0

그래서 저는 정적 구성 클래스입니다.이 클래스는 프로젝트의 모든 곳에서 사용되며 bool 속성을 가지고 있습니다. Property라고합니다. 그래서 aspx 태그에서이 속성을 설정하는 방법을 찾고 싶습니다.aspx 페이지에서 정적 클래스의 bool 속성 평가

<asp:Column ..... Visible='<%: Config.Property %>' > 

이 작동하지 않습니다. 나는 또한 시도했다 :

'<%# Config.Property %>' 
'<%$ Config.Property %>' 
'<%= Config.Property %>' 
'<% Config.Property %>' 

및 " '"없이. 해결 방법이 있습니까? 내가 뒤에 코드에서 설정하고 싶지 않아 내가하지 않는 이유가있다.

+0

설정 또는 가져 오기? 오류 또는 예외가 있습니까 – giammin

+0

일반적으로이 '는 (는) 작동해야합니다 – Aristos

+0

"유형이'System.Boolean '인 객체를 만들 수 없습니다. 'Visible'속성에 대한 문자열 표현 '<% Config.Property %>'에서 가져옵니다. "} –

답변

1

문제가 발생하는 이유는 서버 컨트롤의 각 속성에 대한 문자열 값이 평가되고 원하는 형식으로 구문 분석되기 때문입니다. 따라서 속성을 "True"또는 "True"로 설정할 수 있지만 평가해야하는 표현식에는 사용할 수 없습니다. 이 문제를 취득하기 위하여는, 당신은 다음과 같이 데이터 바인딩 구문을 사용해야합니다

<asp:Column ..... Visible="<%# Config.Property %>" > 
데이터 바인딩 식을 사용하는 데 문제가 당신이 컨트롤 자체 또는 페이지 자체에 데이터 바인딩() 메소드를 실행해야한다는 것입니다

. 나중에 다른 페이지에서 바인딩 컨트롤을 사용하기로 결정하면 페이지 자체에서 호출하면 나쁜 영향을 줄 수 있습니다. 그래서,이 작업을 수행하기 위해, 우리는 지금처럼 데이터 바인딩() 메소드를 실행하는 "가짜 메타 태그"를 추가하려고 :

<asp:Column ..... Visible="<%# Config.Property %>" meta:bind='<% DataBind(); %>' > 

당신은 그것을 bind를 호출 할 필요가 없습니다. 원하는 메타 태그를 호출 할 수 있습니다. 그러면 ASP.NET 엔진이이 컨트롤에서 DataBind를 수행하게되고 Config.Property 식을 평가하고 구문 분석해야합니다.