Рассмотрим разработку веб-элемента управления (ASP.NET).То, что вы действительно хотели бы сделать, это разработать и разработать этот элемент управления очень хорошим способом, вот очень хороший способ сделать это (это то, как я хотел бы сделать, далее в этом вопросе я объясню, почему я не могу сделать это).
Программный подход
1) Я создаю свой элемент управления в отдельной папке с именем WebControls
и называю его (например) MyWebControl
.У меня будут эти файлы: MyWebControl.ascx
и MyWebControl.ascx.cs
.
2) Учитывая, что мой элемент управления является сложным элементом управления, я связываю стиль и динамическое поведение клиента, ссылаясь в html элемента управления на таблицу стилей CSS, которая называетсяMyWebControl.ascx.css
и файл javascript с именем MyWebControl.ascx.js
.
3) В моем контроле я делаю следующее:
<%@ Control Language="C#"
AutoEventWireup="true"
CodeFile="MyWebControl.ascx.cs"
Inherits="MyApp.WebControls.MyWebControl" %>
<link href="MyWebControl.ascx.css" rel="stylesheet" type="text/css" />
<script src="MyWebControl.ascx.js" type="text/javascript"></script>
<div>
...
</div>
Вот оно!
Проблема
Что ж, в этом есть проблема: когда мой элемент управления отображается, и на странице имеется более одного элемента управления, я получаю ссылки на файлы css и js, дублируемые или даже повторяющиеся.чем один раз.
Как связать внешнюю таблицу стилей / файл javascript в моем элементе управления, не встречаясь в этом плохом материале?
EDIT
Хорошо, немного посмотрев, спомогая другим людям здесь, в сообществе, я мог понять, что Page.ClientScript
- это то, что приходит на помощь.
Однако существует много функций для регистрации сценария ... Можете ли вы заметить разницу?среди них?
1)Page.ClientScript.IsClientScriptBlockRegistered
2) Page.ClientScript.IsClientScriptIncludeRegistered
3) Page.ClientScript.IsOnSubmitStatementRegistered
4) Page.ClientScript.IsStartupScriptRegistered
И соответствующие методы набора?
1) Page.ClientScript.RegisterClientScriptBlock
2) Page.ClientScript.RegisterClientScriptInclude
3) Page.ClientScript.RegisterOnSubmitStatement
4) Page.ClientScript.RegisterStartupScript
Кроме того:это можно применить к javascript и css тоже?
Спасибо