首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在asp.net自定义服务器控件中嵌入jquery库?

如何在asp.net自定义服务器控件中嵌入jquery库?
EN

Stack Overflow用户
提问于 2010-09-08 17:14:36
回答 2查看 2.1K关注 0票数 2

我在自定义服务器控件中创建了jquery库。但它不起作用。它抛出"object expected“。完整的代码清单如下所示。

jquery-1.4.1.js将其重命名为jquery.js

代码语言:javascript
复制
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")]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-18 16:21:01

这篇文章似乎描述了你正在尝试做的事情:

http://weblogs.asp.net/dwahlin/archive/2007/04/29/creating-custom-asp-net-server-controls-with-embedded-javascript.aspx

有什么帮助吗?

票数 1
EN

Stack Overflow用户

发布于 2012-04-08 19:07:11

我刚刚发布了一个控件库的压缩文件,我使用了相当多的内容,其中嵌入了脚本,并且内置了jquery UI主题。

它有一个相当全面的ASP控件到Jquery +的映射,它正确地处理了脚本的包含,所以你不会遇到重复的.axd包含(如果你不小心,最终会有多个脚本副本)

注意,它还有一堆其他DAL/Linq的东西,还有一些通用的层次结构服务器控件,它们是部分构建的(jTreeView克隆),但我已经在一些大型项目中成功地使用了它

Link to sourceforge repository

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3666206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档