1

첫 번째 사용자 정의 컨트롤을 구축 중이며 최종 사용자가 종속성을 포함하여 걱정할 필요가 없도록 어셈블리와 함께 컨트롤에 필요한 javascript를 패키지화하고 싶습니다. 나는 Scott Mitchell (http://aspnet.4guysfromrolla.com/articles/080906-1.aspx)의 튜토리얼을 따라 갔지만 제대로 작동하지는 못했다.어떻게 내 ASP.net Custom Control에 자바 스크립트를 직접 포함 시키시겠습니까?

function TogglePanel(panelId) { 
    // $(panelId + ' .PanelContent').toggle(); 
    alert(panelId); 
} 

I가 빌드 작업을 설정하려면 속성 패널에서 : 나는 다음과 같은 기능을 포함하는 CollapsiblePanel.js 파일을 만든

: 여기

내가 지금까지 한 일이다 "임베디드 리소스". 이 파일은 내 클래스 라이브러리 프로젝트 내의 scripts/디렉토리에 있습니다. 내 프로젝트의 루트 네임 스페이스는 webstation.WebControls입니다. 이해가 정확하면 "webstation.WebControls.scripts.CollapsiblePanel.js"를 통해 js 파일을 참조해야합니다.

클래스 바로 전에 다음 줄을 추가했습니다 사용자 지정 컨트롤에 대한 선언 :

<Assembly: WebResource("webstation.WebControls.scripts.CollapsiblePanel.js", "text/javascript")> 

나는 내 사용자 지정 컨트롤의 OnPreRender 이벤트를 무시하고 다음과 같은 추가 한 :

Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs) 

    Page.ClientScript.RegisterClientScriptInclude("wsWebControlsCollapsiblePanel", _ 
        Page.ClientScript.GetWebResourceUrl(Me.GetType(), "webstation.WebControls.scripts.CollapsiblePanel.js")) 

    MyBase.OnPreRender(e) 

End Sub 

나는이 기능 버튼이 내 컨트롤을 렌더링 할 때 "TogglePanel을 (this.id); " onclick 이벤트에서하지만 버튼을 클릭하면 함수가 정의되지 않았다는 오류가 발생합니다. 아무도 내가

답변

0

문제는 내가 가진 그래서 내가 리소스 이름에 '스크립트'를 포함했다, 그것을 발견 나는 도움을 주셔서 감사합니다 정말 것이 내 임베디드 자바 스크립트,

마이크 사용을 시작하는 방법을 알고있는 경우 "webstation.WebControls.CollapsiblePanel.js"

및 그 속임수를 썼는지를 "webstation.WebControls.scripts.CollapsiblePanel.js"

나는 내가 가지고 그것을 시도하기로 결정했다.

모든 문서가 명명 규칙의 일부로 경로를 포함한다고 명시되어 있기 때문에 다소 혼란 스럽지만 프로젝트에 폴더를 포함 할 때 잘못된 것이 있습니다.

마이크

관련 문제