Встраивание скриптов Загрузка в заказе - PullRequest
1 голос
/ 12 марта 2012

Раньше я спрашивал о Best-Practice по этому поводу, но это одна из стратегий. Вот ситуация, в которую мы пойдем:

  1. мы хотим сначала добавить JQuery на страницу (например, через веб-ресурсы )

  2. после этого загрузить библиотеку

  3. Библиотека использует шаблон с именем:

    "Hello sticky hide"
    
  4. Добавить код пользователя библиотеки Готов Бла-бла-бла

Я хочу завершить эту практику хотя бы для себя.Может быть, это просто исправить, просто добавив строку, удалив символ или изменив место

, но любая идея и, надеюсь, исправление приветствуются

Это не показывает ошибки, но результата нет.

[assembly: WebResource("Quad.WebControls.JQuery.js", "application/x-javascript")]
[assembly: WebResource("Quad.WebControls.ProHello.js", "application/x-javascript")]
namespace Quad.WebControls
{
    [ToolboxData("<{0}:QuadBar runat=server></{0}:QuadBar>")]
    public class QuadBar : WebControl
    {
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            if (!DesignMode)
            {
                //ClientScriptManager cs ;
                ScriptManager sm= ScriptManager.GetCurrent(Page);

                if (sm == null)
                    throw new HttpException("Error");

                string scriptJQuery = Page.ClientScript.GetWebResourceUrl(this.GetType(), "Quad.WebControls.JQuery.js");
                string scriptjqHello = Page.ClientScript.GetWebResourceUrl(this.GetType(), "Quad.WebControls.ProHello.js");


                HtmlGenericControl jq = new HtmlGenericControl("script");
                 ...

                HtmlGenericControl jqHello = new HtmlGenericControl("script");
                 ...      

                Page.Header.Controls.Add(jq);
                Page.Header.Controls.Add(jqHello);


        //-------           

**RenderControl**

public override void RenderControl (писатель HtmlTextWriter) {base.RenderControl (writer);

    //StringBuilder sbInit = new StringBuilder();


    StringBuilder sb = new StringBuilder();

    sb.Append(" <script type=\"text/javascript\"> ")
        .Append("  Sys.WebForms.PageRequestManager.getInstance().add_endrequest(EndRequestHandler); ")
        .Append("$(document).ready(function () {")
          ...
        .Append("});")
        .Append("</script>");

    writer.Write(sb.ToString());
}   

Часть Aspx - (элемент управления зарегистрирован)Форма - размещена внутри формы Asp.Net

<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>

  <div class="Hello sticky hide">
        <p>
            MHM Message</p>
        <a class="close" href="javascript:">
            <img src="images/icon-close.png" /></a>
    </div>

<Quad:QuadBar runat="server" ID="proHello" />



    <div class="wrapper">

        <ul>
            <li><a href="#" class="round green button" id="sticky"><span>Sticky bar</span></a> will
                remain visible even user scroll the page.</li>
        </ul>


    </div>  

1 Ответ

1 голос
/ 25 июня 2012

Ответ можно найти здесь: Создание DLL из пользовательского элемента управления плюс Jquery, встроенный в

хотя это можно считать дубликатом одного из моих вопросов

...