1

Я создаю свой первый пользовательский элемент управления, и я хотел бы упаковать javascript, необходимый для элемента управления с помощью сборки, поэтому конечный пользователь не должен беспокоиться о включении зависимостей. Я следил за учебником от Скотта Митчелла (http://aspnet.4guysfromrolla.com/articles/080906-1.aspx), но я не могу заставить его работать правильно.Как встроить javascript непосредственно в свой пользовательский контроль ASP.net?

Вот что я сделал до сих пор:

Я создал файл CollapsiblePanel.js, который содержит следующую функцию:

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

Под панели свойств я установить Build Action на «Встроенный ресурс». Этот файл находится в каталоге scripts/внутри моего проекта библиотеки классов. Корневое пространство имен моего проекта - webstation.WebControls, поэтому, если мое понимание правильное, я должен ссылаться на файл js через «webstation.WebControls.scripts.CollapsiblePanel.js»

Я добавил следующую строку непосредственно перед моим классом декларация для таможенного контроля:

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

Я переопределены событие OnPreRender в моем Custom Control и добавил следующее:

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, но когда я нажимаю кнопку, я получаю сообщение о том, что функция не определена. Если кто-нибудь знает, как я мог бы начать использовать свой встроенный JavaScript, я бы очень признателен за помощь,

Майк

ответ

0

Нашел,

Проблема была я включил «сценарии» в имени ресурса, так что у меня было «webstation.WebControls.scripts.CollapsiblePanel.js»

я решил попробовать, так что я имел: «webstation.WebControls.CollapsiblePanel.js»

и что сделал трюк.

Это немного запутанно, потому что вся документация конкретно указывает, включая путь как часть соглашения об именах, но, возможно, я сделал что-то не так, когда включаю папку в проекте.

Mike

Смежные вопросы