我在自定义服务器控件中记住了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")]
答案 0 :(得分:1)
Thjis文章似乎描述了你要做的事情:
有任何帮助吗?
答案 1 :(得分:0)
我刚发布了一个控件库的zip,我已经使用了相当数量的嵌入脚本并且内置了jquery UI主题。
它有一个非常全面的ASP控件映射到Jquery +它正确处理脚本的包含所以你不会遇到重复.axd包含(如果你不小心,最终会有多个脚本复制)< / p>
注意它还有一堆其他的DAL / Linq内容+一些部分构建的通用层次服务器控件(jTreeView克隆)但我在一些大型项目中使用它非常成功