나는 나중에 폼의 값을 다시 채울 수 있도록 주어진 부모 내부의 모든 폼 입력 컨트롤을 샅샅이 뒤 지르는 제네릭 함수를 작성하려고합니다.C# .net에서 ClientID로 컨트롤을 찾는 방법은 무엇입니까?
나는 쿠키에 각 컨트롤의 ID 및 VALUE를 저장하고, 나는 그 값을 설정하기 전에 컨트롤을 찾을 수 FindControl(ID)
를 사용하여 컨트롤을 다시 채 웁니다.
자식 컨트롤이있는 usercontrol 인스턴스가 여러 개인 경우를 제외하고 모두 정상적으로 작동합니다. 나는 두 DATERANGE 컨트롤 ...
<my:daterange id="DateRangeA" />
<my:daterange id="DateRangeB" />
이있는 경우 예를 들어
는 DATERANGE 제어는 지금이 ..., 두 개의 텍스트 상자 ... 내 양식에 다음
<asp:TextBox ID="txtDateFrom" />
<asp:TextBox ID="txtDateTo" />
을 정의 ID가 txtDateFrom
(및 2x txtDateTo
) 인 텍스트 상자는 쿠키에 두 값을 모두 저장할 수 없으며 ID가 고유하지 않으므로 FindControl()
을 사용하여 컨트롤을 다시 검색 할 수 없습니다.
내가 좋아하는 것은 FindControl(ID)
과 비슷하지만 대신 CLIENTTID를 사용하여 다른 usercontrols 내부의 동일한 ID를 가진 자식 컨트롤을 구별 할 수 있습니다.
모든 컨트롤에 수동으로 전체 경로를 저장하고 (어떤 식 으로든) FindControl(IDa).FindControl(IDb).FindControl(IDc)...
(또는 무엇이든)을 사용하여 자식 컨트롤까지 드릴 다운해야한다는 생각에 저는 겁니다.
더 간단한 방법이 있어야합니다. 맞습니까?
아니면이 모든게 잘못 되었습니까? 고마워, 고마워.
흠. 이제는 HTML 요소에 렌더링 된 ID가 실제로 유일하지만 코드 숨김에 액세스 할 수있는 ID는 변경되지 않았습니다. 조언 해 주셔서 감사합니다. 그 동안, 필자는 (해킹 된) 해결 방법을 선택하고 필요 여부에 상관없이 모든 컨트롤을 'PARENTID + ">"+ ID "로 저장했습니다. 따라서 다음은 일관되게 사용할 가능성이있는 컨트롤을 찾는 데 충분합니다. FindControl (PARENTID) .FindControl (ID)' – Bumpy