나는 누구의 enabled 속성 I 클래스 (포함하는 페이지의 코드 숨김에서) 별도의를 사용하여 평가해야 Asp.Net TextBox 컨트롤이 있습니다. 나는이 작업을 수행 할 방법은 다음과 같습니다외부 메서드 호출에서 서버 컨트롤에 대한 자체 참조를 포함하려면 어떻게합니까?
는<asp:TextBox ID="myTB" runat="server" Enabled="<% ToggleControl(this, "someBusinessValue") %>" ... />
내가 호출 컨트롤에 대한 참조를 전달해야하는 이유는 내가 그것을 비활성화하기 전에 고려해야 할 다른 속성이 있는지 확인하는 것입니다. 그러나 'this'키워드는 페이지 전체를 나타냅니다. 그리고 내 TextBox는 FormView 또는 GridView 내에있을 수 있기 때문에 'page.myTB'를 검사하여 컨트롤을 쉽게 얻을 수 없습니다. TextBox에 대한 참조를 검색하기 위해받는 클래스 파일에서 GridView를 통해 plowing을 시작하지 않아도됩니다.
사람이 방법으로 제어 인라인을 참조하는 방법을 알고 있나요?
편집 1 : 최고의 내가 함께 왔어요 :이는 등리스트 박스, 체크 박스 RadioButtonList, 같은 서버 컨트롤의 여러 가지 유형,
편집 2로 수행 될 필요가있을 것이다 지금까지 :
<asp:TextBox ID="myTB" runat="server" Enabled="<% ToggleControl(myGridView.FindControl("myTB") as WebControl, "someBusinessValue") %>"
너무 우아하지는 않지만 필요한 자동 참조를 제공합니다.
실제로 흥미로운 딜레마를 이잖아. 일반적으로 내 컨트롤을 필요로 할 때 논리를 자체 내에서 포함하는 내 자신의 특수 TextBox 하위 클래스 것이다. 결국, OO는 무엇에 관한 것입니까! –
일반적으로 그렇게 하겠지만 원하는 동작은 모든 입력 컨트롤에 적용 할 수 있으므로 존재하는 각 입력 컨트롤을 서브 클래스 화하지 않아도되고 새로운 작업도 필요합니다. 우리는 또한 webcontroladapters를 사용하는 것을 고려하고 있었지만 좀 더 복잡했습니다. –