Tải bản đầy đủ (.pdf) (3 trang)

Xây dựng và sử dụng các điều khiển do người dùng tạo ra

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (91.56 KB, 3 trang )

Xây dựng và sử dụng các điều khiển do người dùng tạo ra

Xây dựng và sử dụng các
điều khiển do người dùng tạo
ra
Bởi:
Khuyet Danh
Một webcontrol cho phép bạn xây dựng những control mới từ những control của asp.net,
bạn có thể dễ dàng mở rộng ASPNET Framework từ những control do mình tạo ra.
Việc thao tác với webcontrol thì hầu hết là giống với aspx, để sử dụng webcontrol trên
trang aspx bạn phải đăng ký nó trước khi sử dụng với chỉ dẫn <%@ Register %> ,
ví dụ
<%@ Register TagPrefix="main" TagName="cal"
Src="~/Caculator.ascx" %>
TagPrefix: Chỉ định không gian tên mà bạn muốn kết hợp usercontrol và trang hiện tại
TagName: Chỉ định tên mà bạn muốn kết hợp usercontrol và trang hiện tại
Src: chỉ đến đường dẫn của control(.ascs)
Tạo một webcontrol thực hiện phép tính toán và sử dụng nó trong 1 trang aspx
Code 1: Caculator.ascx
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="Caculator.ascx.cs" Inherits="Caculator" %>
</asp:Label> runat="server"></asp:TextBox>  runat="server" Text="Nhập b:"></asp:Label> ID="txtb" runat="server"></asp:TextBox> <hr /> ID="btnsum" OnCommand="Calculator" CommandName="cal"
1/3


Xây dựng và sử dụng các điều khiển do người dùng tạo ra



CommandArgument="sum" runat="server" Text="+" Width="45px"
/> CommandName="cal" CommandArgument="sub" runat="server"
Text="-" Width="45px" /> OnCommand="Calculator" CommandName="cal"
CommandArgument="mul" runat="server" Text="X" Width="45px"
/> CommandName="cal" CommandArgument="div" runat="server"
Text="/" Width="45px" /> <hr /> runat="server" Text="Label"></asp:Label> <hr />
runat="server" ControlToValidate="txta" ErrorMessage="Bạn
phải nhập a" Visible="False"></asp:RequiredFieldValidator>
ControlToValidate="txta" ErrorMessage="a phải là kiểu
nguyên" MaximumValue="9999999" MinimumValue="0"
Type="Integer" Visible="False"></asp:RangeValidator>
runat="server" ControlToValidate="txtb" ErrorMessage="Bạn
phải nhập b" Visible="False"></asp:RequiredFieldValidator>
ControlToValidate="txtb" ErrorMessage="a phải là kiểu
nguyên" MaximumValue="9999999" MinimumValue="0"
Type="Integer" Visible="False"></asp:RangeValidator>


 

runat="server" />
Code 2 Caculator.ascx.cs
using System; public partial class Caculator :
System.Web.UI.UserControl { protected void

Page_Load(object sender, EventArgs e) { } protected void
Calculator(object sender, CommandEventArgs e) { if
(e.CommandName == "cal") { switch
(e.CommandArgument.ToString()) { case "sum":
lblresult.Text = Convert.ToString(int.Parse(txta.Text) +
int.Parse(txtb.Text)); break; case "sub": lblresult.Text =
Convert.ToString(int.Parse(txta.Text) int.Parse(txtb.Text)); break; case "mul": lblresult.Text =
Convert.ToString(int.Parse(txta.Text) *
int.Parse(txtb.Text)); break; case "div": { if
2/3


Xây dựng và sử dụng các điều khiển do người dùng tạo ra

(int.Parse(txtb.Text) != 0) lblresult.Text =
Convert.ToString(int.Parse(txta.Text) /
int.Parse(txtb.Text)); } break; default: // break; } } } }
Code 3: Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@
Register TagPrefix="main" TagName="cal"
Src="~/Caculator.ascx" %> <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN" " />TR/xhtml1/DTD/xhtml1-transitional.dtd"> xmlns=" runat="server"> <title>Su dung Webcontrol</title> type="text/css"> html{ background-color:#e5e5e5} .divmain{
background-color:White; margin:15px; padding:5px;
top:30px; left:150px; position:absolute;} </style> </head>
<body> <form id="form1" runat="server"> <div> class="divmain"> <main:cal ID="maincal" runat="server" />
</div> </div> </form> </body> </html>

Sử dụng chỉ dẫn Reference
Khi bạn load 1 Usercontrol với phương thức Page.LoadControl(), UserControl được trả
về như một thực thể của lớp System.Web.UI.WebControl. có nghĩa là bao gồm tất cả các
thuộc tính tuỳ biến, thuộc tính này không có sẵn như với trường hợp Load UserControl
động.
Nếu bạn sử dụng Load UserControl động bạn cần ép kiểu của UserControl về đúng kiểu
trước khi sử dụng các thuộc tín. Để lấy một tham chiếu tới một Usercontrol bạn cần phải
sử dụng chỉ dẫn <%@ Reference %>
Bạn muốn thăm dò ý kiến của mọi người xem họ đã từng sử dụng ngôn ngữ asp cơ bản
hay ngôn ngữ asp.net ? Và tuỳ thuộc vào mỗi người họ sẽ chọn asp hay aspnet để đưa ra
hiển thị một UserControl.

3/3



×