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