2010-03-10 8 views
1

Je suis étudiante de premier cycle. J'ai eu quelques requêtes liées à l'intégration de jQuery dans votre contrôle personnalisé côté serveur ASP.NET.Intégration de jQuery dans votre serveur ASP.Net Contrôle personnalisé

private string GetEmbeddedTextFile (string sTextFile) { // fonction générique pour récupérer le contenu // d'une ressource de fichier texte intégré en tant que chaîne

 // we'll get the executing assembly, and derive 
     // the namespace using the first type in the assembly 
     Assembly a = Assembly.GetExecutingAssembly(); 
     String sNamespace = a.GetTypes()[0].Namespace; 

     // with the assembly and namespace, we'll get the 
     // embedded resource as a stream 
     Stream s = a.GetManifestResourceStream(
        string.Format("{0}.{1}",a.GetName().Name, sTextFile) 
       ); 

     // read the contents of the stream into a string 
     StreamReader sr = new StreamReader(s); 
     String sContents = sr.ReadToEnd(); 

     sr.Close(); 
     s.Close(); 

     return sContents; 
    } 
    private void RegisterJavascriptFromResource() 
    { 
     // load the embedded text file "javascript.txt" 
     // and register its contents as client-side script 
     string sScript = GetEmbeddedTextFile("JScript.txt"); 
     this.Page.RegisterClientScriptBlock("PleaseWaitButtonScript", sScript); 
    } 
    private void RegisterJQueryFromResource() 
    { 
     // load the embedded text file "javascript.txt" 
     // and register its contents as client-side script 
     string sScript = GetEmbeddedTextFile("jquery-1.4.1.min.txt"); 
     this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "jQuery", sScript); 
     // this.Page.RegisterClientScriptBlock("JQueryResourceFile", sScript); 
    } 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 

     // the client-side javascript code is kept 
     // in an embedded resource; load the script 
     // and register it with the page. 
     RegisterJQueryFromResource(); 
     RegisterJavascriptFromResource(); 
    } 

mais le problème je suis face est que tout mon code JQuery que j'ai écrit dans un fichier .JS séparé et que j'ai essayé d'intégrer dans mon contrôle personnalisé, est diffusé en tant que sortie sur l'écran. En outre, mon contrôle ne se comporte pas correctement car il devrait avoir à, la fonctionnalité jQuery ne fonctionne pas derrière pour cette raison de ne pas être correctement intégrée :-( S'il vous plaît, aidez-moi!

Répondre

1

Merci! On dirait que vous manquent les <script> balises entourant le javascript. Essayez cette surcharge de RegisterClientScriptBlock qui prend un quatrième paramètre booléen qui ajoutera les balises de script s'il est vrai.

Page.ClientScript.RegisterClientScriptBlock(typeof(string), "jQuery", sScript, true); 
0

« tout mon code JQuery que je l'ai écrit dans fichier .JS séparé et ont essayé d'intégrer dans mon> contrôle personnalisé, est le flux ed comme sortie sur l'écran ".

Il semble que vous ayez besoin d'ajouter une ligne indiquant au code comment télécharger le javascript intégré. Faites-le avec une annotation Assembly au-dessus du début d'une classe dans votre projet de contrôle personnalisé. C'est le format:

<Assembly: System.Web.UI.WebResource("Namespace.ScriptName.js", "application/x-javascript")>