Практическое руководство. Преобразование страниц веб-форм в пользовательские элементы управления ASP.NET
Обновлен: Ноябрь 2007
Если после разработки веб-страницы ASP.NET доступ к ее функциям необходимо обеспечить по всему приложению, эту страницу путем внесения незначительных изменений можно преобразовать в пользовательский элемент управления.
Преобразование однофайловой веб-страницы ASP.NET в пользовательский элемент управления
Переименуйте элемент управления таким образом, чтобы файл получил расширение ASCX.
Удалите из страницы элементы html, body и form.
Удалите все атрибуты директивы @ Control, кроме Language, AutoEventWireup (если есть), CodeFile и Inherits.
Включите в директиву @ Control атрибут className. Это позволит обеспечить строгую типизацию пользовательского элемента управления при его добавлении на страницу.
Преобразование веб-страницы ASP.NET с выделенным кодом в пользовательский элемент управления
Измените расширение файла с ASPX на ASCX.
Переименуйте файл с выделенным кодом таким образом, чтобы он получил расширение .ASCX.VB или .ASCX.CS, в зависимости от используемого языка программирования.
Откройте файл с выделенным кодом и измените класс, от которого производится наследование, с Page на UserControl.
В ASPX-файле выполните указанные ниже действия.
Удалите из страницы элементы html, body и form.
Удалите все атрибуты директивы @ Control, кроме Language, AutoEventWireup (если есть), CodeFile и Inherits.
В директиве @ Control измените атрибут CodeFile таким образом, чтобы он указывал на переименованный файл с выделенным кодом.
Включите в директиву @ Control атрибут className. Это позволит обеспечить строгую типизацию пользовательского элемента управления при его добавлении на страницу.
Пример
В приведенном ниже примере показаны однофайловая веб-страница ASP.NET в исходном виде и пользовательский элемент управления, получившийся в результате преобразования страницы.
![]() |
---|
В данном примере используется текстовое поле для ввода пользовательских данных, что представляет потенциальную угрозу безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие сценариев и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев. |
<%@ Page Language="VB" %>
<html>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Control Language="VB" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
<%@ Control Language="C#" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
См. также
Задачи
Практическое руководство. Создание пользовательских элементов управления ASP.NET
Основные понятия
Общие сведения о пользовательских элементах управления ASP.NET