UserControl
jqueryへの参照を含むページを必要とするASP.netがあります。
昔は、含まれているページに jQuery への参照を含めるだけでした。
<HEAD>
<SCRIPT type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></SCRIPT>
</HEAD>
しかし、jQuery に対する私の UserControl の依存関係は内部実装の詳細であり、外部に漏れてはなりません。最終ページに jQuery を含めるように userControl に指示するにはどうすればよいですか?
これを調査すると、さまざまな関数をさまざまなタイミングで呼び出して、多くの混乱した解決策を見つけました。人々はそれらのいずれかが有効であると考える可能性があるため、それらのいずれについても言及することをためらっています。うまくいく答えではなく、正しい答えを望んでいます。
さまざまなソリューションには、次の呼び出しが含まれます。
- 通話
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
いつvsを使いたい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" %>