у меня есть ASP.net UserControl
, который требует, чтобы содержащая страница включала ссылку на jquery .
Раньше я бы просто включил ссылку на jQuery на содержащую страницу:
Но зависимость моего UserControl от jQuery — это внутренняя деталь реализации, которая не должна просачиваться наружу. Как мой userControl может указать, что jQuery должен быть включен на последнюю страницу?
Исследуя это, я нашел множество запутанных решений, вызывающих разные функции в разное время. я стесняюсь упоминать какой-либо из них, потому что люди могут подумать, что любой из них действителен. я надеюсь на правильный ответ, а не на ответ, который работает.
Различные решения включают вызов:
this.Page.ClientScript.RegisterClientScriptInclude
во время Рендеринг
this.Page.ClientScript.RegisterStartupScript
во время Рендеринг
this.Page.ClientScript.RegisterStartupScript
во время Page_Load
this.Page.ClientScript.RegisterStartupScript
во время нажатия кнопкиPage.Header.Controls.Add(new LiteralControl( { Text = "";);
в ваш userControl.ascx
файлRegisterClientScriptBlock
во время OnPreRender
Моя путаница сосредоточена вокруг:
RegisterClientScriptInclude
vs RegisterStartupScript
?Page_Load
против Render
против PreRender
против нажатия кнопки?Ре gisterXxxxScriptXxx
путь к "Scripts/jquery-1.7.2.min.js"
?Краткая версия: Как мне преобразовать
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
для использования в UserControl:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MySuperCoolControl.ascx.cs" Inherits="Controls_MySuperCoolControl" %>