문제

가질의 차이점은 무엇입니까?

<%# Eval("State") %>

당신의 aspx 페이지와 비교합니다

<%# DataBinder.Eval(Container.DataItem, "State") %>

당신의 aspx 페이지?

도움이 되었습니까?

해결책

Eval ( "State")은 단순화 된 Databinder.eval (Container.Dataitem, "State") 구문입니다. 데이터 바운드 템플릿 컨트롤 내부에서만 작동합니다.

자세한 내용은 참조하십시오 MSDN 문서.

다른 팁

다른 점이 없다. "평가"메소드는 Databinder.eval (container.dataitem, "blah") 메소드의 바로 가기입니다.

사이에는 많은 차이가 있습니다 <%# Eval %> 그리고 <%# DataBinder.Eval %> 그래도 덮개 아래 문서 사용을 말합니다 Eval (TemplateControl.Eval 정확히) 실제로 전화합니다 DataBinder.Eval 그리고 그들의 임무는 정확히 같은 일을하는 것입니다.

그것은 정확하지만 단지 사용합니다 Eval ASP.NET 자체는 데이터 바운드 객체를 해결한다는 것을 의미합니다. 항목이 추가되는 스택으로 내부적으로 수행합니다. Control.DataBind() 호출됩니다. 속임수는 이런 경우에만 발생한다는 것입니다 Page 통제의 속성은null 그 시점에서.

만약 Page-관리 지점에 도달하면 관리 스택이 최신 상태가 아닙니다. DataItem 해결해야합니다 Page.GetDataItem() 메소드는 메시지와 같은 메시지로 예외를 제공합니다

다음과 같은 데이터 바인딩 방법 Eval(), XPath(), 그리고 Bind() 데이터 컨트롤의 맥락에서만 사용할 수 있습니다.

DataBinder.Eval 대상 객체를 수동으로 제공하기 때문에 이러한 상황에서도 여전히 작동하므로 ASP.NET은 자체적으로 해결할 필요가 없습니다.

평가 방법은 후자의 바로 가기입니다.

나는 다음 코드를 보았다

<%# (DataBinder.Eval(Container.DataItem, "ApplicationId").ToString() == "-1" ? "N/A" : Eval("ApplicationId").ToString()) %>

그래서 나는 그것들이 약간 다릅니다.

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