2009-07-19 6 views
0

ASP.Net 2.0을 사용하고 있습니다. 타사 공급 업체의 컨트롤에서 상속 된 사용자 지정 컨트롤이 있습니다. Render 메서드를 재정의하려고합니다.컨트롤의 렌더링 이벤트를 재정의하려고 할 때 ClientID 문제가 발생했습니다.

Protected Overrides Sub Render(ByVal writer As HtmlTextWriter) 
if (some condition is true) then  
    Dim d As New Button()  
    d.RenderControl(writer)  
else  
    MyBase.Render(writer)  
end if  
end sub 

내가 필요한 것은 특정 상황에서 원래 컨트롤 대신 Button을 렌더링 할 수 있기를 원합니다. 하지만 Button에 동일한 클라이언트 ID를 지정하여 javascript를 사용하여 조작 할 수있게하고 싶습니다.

단추에 clientid를 어떻게 할당합니까? 감사합니다.

답변

1

ClientID는 컨트롤의 ID 및 해당 상위의 고유 ID를 기반으로합니다. 버튼을 만들 때 ID를 부여해야합니다. 귀하의 코드에서 그런 일이 일어나지 않습니다. 당신이 그것을 어둡게 한 후, MSDN에서 d.ID="btnIdNameHere"

를 사용

클라이언트 ID 값이 제어 및 부모 컨트롤의가 UniqueID 값의 ID 값을 연결 에 의해 생성됩니다. 컨트롤의 ID 값을 지정하지 않으면 값이 자동으로 생성됩니다.

+0

내 컨트롤이 패널에 있기 때문에 d.ID = "btnIdNameHere"를 사용하면 작동하지 않습니다. 여러 개의 중첩 패널에있을 수도 있습니다. 그래서 버튼을 만들면 원래의 컨트롤과 동일한 ID로 보이지 않습니다. – janem

관련 문제