Description du problème
Est-il possible d'enregistrer (inclure) javascript dans les RenderingTemplate? (RenderingTemplates sont utilisés pour rendre les formulaires de liste ou des champs) En utilisantinscrire/javascript Inclure dans les RenderingTemplate
<SharePoint:RenderingTemplate ID="NewRelatedListItem" runat="server">
<Template>
<span id="part1">
<SharePoint:ScriptLink Name="SPFormFieldAssistant.js" Localizable="false" />
...
</span>
...
</Template>
</SharePoint:RenderingTemplate>
il ne pouvait pas être fait - il n'a pas inclure un script à la zone HEAD, mais ...:
Source http://img62.imageshack.us/img62/9826/ss20100324092808.png
Quelque chose ne va pas avec mon code? Tout le script EST dans le dossier Layouts et j'ai vérifié avec Reflector qu'il utilise le dossier Layouts si Localizable = 'False'.
Je ne veux pas que ce script soit chargé avec chaque page, mais seulement pour les formulaires.
Des idées sur la façon dont cela pourrait être réalisé?
Mon idée qui ne fonctionne pas ...
Ma première idée était de ajouter scénario programme avec <% this.Page.ClientScript.RegisterClientScriptInclude("spffa", "/_layouts/SPFormFieldAssistant.js") %>
, mais il ne fonctionne pas, comme cette évaluation de code se produit dans la méthode de rendu et je l'ai lu quelque part où vous ne pouvez pas enregistrer des scripts clients dans la méthode Render, mais cela se fait généralement dans la méthode PreRender. Pitié
Ma deuxième idée qui ne fonctionne toujours pas
je pensais créer RegisterClientScript et il coutume UserControl nommée dans la méthode de PreRender je voudrais ajouter surchargée scripts j'ai besoin avec le gestionnaire de script client (this.Page.ClientScript ...) mais, comme avec SharePoint: ScriptLink, mon contrôle est également rendu sous forme de texte! my control as text http://img693.imageshack.us/img693/3738/ss20100324115826.png
Comment puis-je surmonter cela et où est la prise?
runat = où? devrait être spécifié si vous avez besoin de contrôles côté serveur – naivists
C'est vrai, merci. Mon erreur :( –