2010-09-08 6 views
2

J'ai libéré une librairie jquery dans un contrôle serveur personnalisé. mais ça ne marche pas. il lance "l'erreur attendue par l'objet". la liste complète des codes est donnée ci-dessous.Comment intégrer la bibliothèque jquery dans le contrôle de serveur personnalisé asp.net?

jquery-1.4.1.js est le renommer à jquery.js

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Linq; 
using System.Text; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace ServerControl1 
{ 
    [DefaultProperty("Text")] 
    [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")] 
    public class ServerControl1 : WebControl 
    { 
     [Bindable(true)] 
     [Category("Appearance")] 
     [DefaultValue("")] 
     [Localizable(true)] 
     public string Text 
     { 
      get 
      { 
       String s = (String)ViewState["Text"]; 
       return ((s == null) ? "[" + this.ID + "]" : s); 
      } 

      set 
      { 
       ViewState["Text"] = value; 
      } 
     } 

     protected override void RenderContents(HtmlTextWriter output) 
     { 

      output.Write("<p>Hello World!!</p>"); 
     } 

     public static void RegisterJQuery(ClientScriptManager cs) 
     { 
      cs.RegisterClientScriptResource(typeof(ServerControl1), 
       "ServerControl1.Resources.jquery.js"); 
     } 


     protected override void OnPreRender(EventArgs e) 
     { 
      if (!this.DesignMode) 
      { 

       // Register the JavaScript libraries 
       ClientScriptManager cs = this.Page.ClientScript; 
       ServerControl1.RegisterJQuery(cs); 

      } 
     } 

     protected override void OnInit(EventArgs e) 
     { 



      string javascript = "<script type='text/javascript'> " + 
            "$(document).ready(function() { " + 
            "alert($('p').text()); " + 
            "});</script>"; 

      if (!(Page.ClientScript.IsClientScriptBlockRegistered("bhelp"))) 
       Page.ClientScript.RegisterStartupScript(this.GetType(), "bhelp", javascript); 

      base.OnInit(e); 
     } 

    } 
} 

    [assembly: System.Web.UI.WebResource("ServerControl1.Resources.jquery.js", "text/javascript")] 

Répondre

0

Je viens de poster un fichier zip d'une bibliothèque de contrôle J'ai utilisé une bonne quantité qui intègre les scripts et intègre le thème de l'interface utilisateur jquery. Il a un mappage assez complet des contrôles ASP à Jquery + il gère l'inclusion des scripts correctement afin que vous ne couriez pas dans l'inclusion .axd de duplication (se terminant avec plusieurs copies de scripts si vous ne faites pas attention)

Notez qu'il a aussi un tas d'autres DAL/stuff Linq y + quelques contrôles serveur hierachy génériques qui sont en partie construit (clone jTreeView) mais je l'ai utilisé avec assez de succès dans certains projets largish

Link to sourceforge repository

Questions connexes