문제

Page_Load 이벤트 내에서 서버 측 JavaScript (Onclick)와 C#을 사용하여 레이블의 텍스트를 변경하려고합니다. 예를 들어 다음과 같은 것을 쓰고 싶습니다.

Label1.Attributes.Add("onclick", "Label2.text='new caption'")

누구든지 이것에 대한 올바른 코드를 알고 있습니까? 또한이 유형의 코드는 무엇을 언급 하는가; C#의 JavaScript 또는 JavaScript입니까 아니면 특정 이름이 있습니까? 마지막으로 C#과 함께 사용할 Control.attributes.add ( "event", "syntax") 코드의 선택을 나열하는 책 또는 온라인 리소스가 존재합니까?

도움이 되었습니까?

해결책

서버 측 JavaScript가 없습니다 (실제로 JavaScript를 서버 언어로 사용하는 ASP.NET 이외의 플랫폼으로 변경하지 않는 한). 귀하가하는 일은 HTML 태그에 속성을 추가하는 것입니다. 코드는 클라이언트 측에서 전적으로 실행됩니다.

먼저 서버 사이드 코드 및 서버 측 제어없이 HTML에서 수행 된 방법을 살펴 보겠습니다.

<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>

사용 Label 대신 컨트롤, 서버 사이드 코드에서 onclick 속성을 설정하면 다음과 같습니다.

Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");

컨트롤이 이름 지정 컨테이너 내부에 있지 않은 한 작동합니다. 그들이 컨트롤의 ID가 컨테이너 이름으로 선정되어 고유 한 상태를 유지하므로 사용해야합니다. ClientID 최종 ID가 무엇인지 알아내는 속성 :

Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");

그만큼 ClientID JavaScript에서 요소에 액세스하는 데 사용할 수있는 ID가 항상 포함되어 있으므로 마지막 코드는 컨트롤이 이름 지정 컨테이너에 있든 없든 항상 작동합니다.

사용할 수있는 속성을 찾으려면 HTML 문서 (예 : Internet Explorer 문서)를보아야합니다. 스팬 요소. 특정 기능에 대한 docetation을 살펴보면 표준 정보를 주목하십시오. 이는 브라우저에서 또는 인터넷 익스플로러에서 작동하는지 알려줍니다.

다른 팁

위의 코드는 클라이언트에서 렌더링 된 서버 컨트롤에 JavaScript를 추가합니다. 이 MSDN 기사를 살펴보십시오. asp.net과 함께 JavaScript 사용 자세한 내용은.

IIRC, 참조해야합니다 Label2 클라이언트에 의해 레이블의 텍스트 값을 변경하려면 일부 JavaScript를 작성해야합니다 (ASP.NET 레이블이 <span> 태그).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top