asp.net
2009-11-06 4 views 0 likes 
0

나는 몇 가지 예제를 찾고 이해할 수없는 다음UserControl을 내부 ItemTemplate을

가있는 gridview가있다

, 그것의 내부 ItemTemplate을가 사용하는 컨트롤입니다 :

<asp:TemplateField> 
    <ItemTemplate> 
    <%# Eval("Title") %> 
    <uc:IdBox id="Idbox1" runat="server" TheID='<%# Eval("ID") %>' ShowHeader="True" /> 
    </ItemTemplate> 
</asp:TemplateField> 

도 있습니다 ObjectDataSource를 gridview에 연결됩니다.

TheID='<%# Eval("ID") %>'public override void DataBind()을 호출하는 이유는이 사용자 정의 컨트롤 코드에 우선합니다.

이 값은 ObjectDataSource가 gridview에 연결하고이 TheID 속성이 ObjectDataSource에서 값을 가져 오는 것과 마찬가지로 평가됩니다.

왜 사용자 정의 컨트롤의 DataBind()를 호출해야합니까?

갱신 :

내가 재산없이 UserControl을 사용하는 경우 :

<uc:IdBox id="Idbox1" runat="server" ShowHeader="True" /> 

데이터 바인딩()가 호출되지 않습니다.

답변

0

흥미 롭습니다 ... 데이터를 명시 적으로 바인딩하고 있습니까, 아니면 DataSourceID를 설정하고 있습니까? ObjectDataSource를 사용할 때 ASP.NET은 내부적으로 DataBind를 자동으로 호출합니다.

다음 MSDN 기사는 도움이 될 수

http://msdn.microsoft.com/en-us/library/ms178366.aspx

관련 문제