하는 방법에 액세스 컨트롤에 listview 의 layouttemplate?
문제
어떻게 설정의 속성에서 사용자 정의 컨트롤 ListView
ko LayoutTemplate
코드에서 숨김?
<asp:ListView ...>
<LayoutTemplate>
<myprefix:MyControl id="myControl" ... />
</LayoutTemplate>
...
</asp:ListView>
나는 이런 일을 하고 싶:
myControl.SomeProperty = somevalue;
해 주십시오 나의 통제에 없 ItemTemplate
, 에 LayoutTemplate
, 다,그래서 그것은 존재하지 않는 모든 항목에 대해,그것은 존재합니다.그래서 나에 액세스할 수 있어야 합니다면 그것을 위해,아마 데이터 바인딩한 항목.
해결책
의 속성을 설정하는 컨트롤 내부 LayoutTemplate,단순히 사용하 FindControl 방법에 ListView 제어합니다.
var control = (MyControl)myListView.FindControl("myControlId");
다른 팁
var control = (MyControl)myListView.FindControl("myControlId");
이것은 작지만 당신이 그것을 할 수 있는지 확인 후 데이터 바인딩하거나 LayoutTemplate 이 만들어지지 않은 따라서 던지고 오류가 있습니다.
사 FindControl 는 방법에는 각 ListViewItem.
var control = (MyControl)Item.FindControl("yourControlId");
이 대답했 Stack Overflow 질문:
컨트롤에 액세스 내부에 LayoutTemplate 의 컨트롤
시에 댓글을 허용되는 대답하여 tanathos.
내가 이것을 알고 물었 년 이상 전에,그러나 그것은 하나의 첫 번째 결과에 대한 검색어가 사용하는 여기에 도착,그래서 떠나고 싶었답에 대한 다른 사람을 만났습니다.
레이아웃을 작성되고,발사 LayoutCreated 이벤트는 레이아웃에 생성되었 시스템입니다.
다음을 사용할 수 있습니다 listview.FindControl 을 얻을 참조하 제어합니다.
가 필요한 경우 VB.net 버전에,그것은 여기:
Dim control = CType(myListView.FindControl("myControlId"), MyControl)
제휴하지 않습니다 StackOverflow