1

Je construis mon premier contrôle d'utilisateur et je voudrais emballer le javascript requis pour le contrôle avec l'assemblée afin que l'utilisateur final n'ait pas à s'inquiéter d'inclure des dépendances. J'ai suivi un tutoriel de Scott Mitchell (http://aspnet.4guysfromrolla.com/articles/080906-1.aspx) mais je n'arrive pas à le faire fonctionner correctement.Comment intégrer javascript directement dans mon ASP.net Custom Control?

Voici ce que je l'ai fait jusqu'à présent:

J'ai créé un fichier CollapsiblePanel.js qui contient la fonction suivante:

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

Dans le panneau de propriétés que je mets l'Action de génération "Ressource embarquée". Ce fichier réside dans un répertoire scripts/dans mon projet de bibliothèque de classes. L'espace de noms racine de mon projet est webstation.WebControls, donc si ma compréhension est correcte, je devrais référencer le fichier js via "webstation.WebControls.scripts.CollapsiblePanel.js"

J'ai ajouté la ligne suivante juste avant ma classe déclaration pour le contrôle personnalisé:

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

J'ai annulé l'événement OnPreRender dans mon contrôle personnalisé et ajouté ce qui suit:

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 

Quand je rendre mon contrôle, j'ai un bouton avec la fonction « TogglePanel (this.id); " dans l'événement onclick, mais quand je clique sur le bouton j'obtiens une erreur disant que la fonction n'est pas définie. Si quelqu'un sait comment je pourrais commencer à utiliser mon javascript intégré Je voudrais vraiment apprécier l'aide,

Mike

Répondre

0

Je l'ai trouvé,

Le problème est moi inclus « scripts » dans le nom de la ressource pour que j'avais « webstation.WebControls.scripts.CollapsiblePanel.js »

j'ai décidé de l'essayer si j'avais: « webstation.WebControls.CollapsiblePanel.js »

et qui a fait l'affaire. C'est un peu déroutant car toute la documentation mentionne spécifiquement le chemin comme faisant partie de la convention de nommage, mais j'ai peut-être fait quelque chose de mal en incluant un dossier dans le projet.

Mike

Questions connexes