2010-09-08 31 views
2

我在自定義服務器控件中修改了jquery庫。但它不起作用。它會拋出「對象預期錯誤」。下面給出了完整的代碼清單。如何在asp.net自定義服務器控件中嵌入jQuery庫?

jQuery的1.4.1.js是其重命名爲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")] 

回答

1
+0

它解決了我的問題。謝謝 – 2010-11-18 10:37:02

+0

任何改變的加票也是? – 2010-11-18 14:56:08

+0

http://msdn.microsoft.com/en-us/library/system.web.ui.webresourceattribute(v=VS.100).aspx和http://support.microsoft.com/kb/910442也很有用 – Colin 2011-07-07 12:24:49

0

我剛剛發佈了一個控制庫的zip我已經使用了相當數量的嵌入腳本,並有jQuery UI主題內置。

它有一個非常全面的ASP控件到Jquery +的映射,它處理正確包含腳本,所以你不會碰到重複.axd包含(如果你不小心結束了多個腳本的複製)

注意它也有很多其他的DAL的/ LINQ的東西在裏面+被部分建成(jTreeView克隆),但我已經在一些稍大的項目中使用它非常成功的一些通用的層次結構的服務器控件

Link to sourceforge repository

相關問題