tengo un ASP.net UserControl
que requiere que la página que contiene incluya una referencia a jquery.¿Cómo incluir jQuery en la página ASP.net?
En los viejos tiempos, simplemente habría incluido una referencia a jQuery en la página que contiene:
<HEAD>
<SCRIPT type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></SCRIPT>
</HEAD>
Pero la dependencia de mi control de usuario en jQuery es un detalle de implementación interna, que no debe ser una fuga al exterior . ¿Cómo puede mi userControl dictar que jQuery se incluya en la página final?
Investigando esto, encuentro una gran cantidad de soluciones confusas, llamando a diferentes funciones en diferentes momentos. dudo en mencionar cualquiera de ellos, porque la gente puede pensar que alguno de ellos es válido. Estoy esperando la respuesta correcta, no es una respuesta que funcione.
Diferentes soluciones implican llamar:
- calling
this.Page.ClientScript.RegisterClientScriptInclude
duringRender
- calling
this.Page.ClientScript.RegisterStartupScript
duringRender
- calling
this.Page.ClientScript.RegisterStartupScript
duringPage_Load
- calling
this.Page.ClientScript.RegisterStartupScript
during a button click - calling
Page.Header.Controls.Add(new LiteralControl({ Text = "<script type=\"text/javascript\" src=\"...\"></script>";);
- simply including a
<SCRIPT>
element in youruserControl.ascx
file - calling
RegisterClientScriptBlock
duringOnPreRender
Mi confusión se centra en:
- cuando iba a querer usar
RegisterClientScriptInclude
vsRegisterStartupScript
? - ¿Cuándo me gustaría llamarlo durante
Page_Load
vsRender
vsPreRender
frente a un clic del botón? - ¿cómo le doy a
RegisterXxxxScriptXxx
la ruta al"Scripts/jquery-1.7.2.min.js"
?
versión corta: ¿Cómo convierto
<%@ 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>
para su uso en un control de usuario:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MySuperCoolControl.ascx.cs" Inherits="Controls_MySuperCoolControl" %>
Si se me hizo un control personalizado, voy a colocar una variable booleana que la base en la que mi control automáticamente registrar o no la biblioteca completa de jQuery. De esa forma, dejé al usuario final para decidir cómo le gustaría incluir el jQuery. Mi control automático de forma automática, o su camino. – Aristos
Está confundido porque no considera que cada solución que mencionó maneja situaciones diferentes (más o menos). Por ejemplo, algo así como un marco incluido no tendrá lugar en una carga de página (mientras que el inicio del almacenamiento en caché de imágenes lo haría, lo que podría depender del marco). –
Diría que los únicos tres que se deben tener en cuenta son 1, 5 y 7. Los otros son situaciones basadas en eventos o en instancias, que no es el lugar donde debe incluirse un marco. –