Sử dụng UserControl

Một phần của tài liệu Giáo trình ASP.NET cơ bản doc (Trang 81 - 83)

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(.ascx)

Ví dụ 1: 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 ID="Label1"runat="server" Text="Nhập a:"></asp:Label> <asp:TextBox ID="txta"runat="server"></asp:TextBox>

&nbsp;<asp:Label ID="Label2"runat="server"Text="Nhập b:"></asp:Label> <asp:TextBox ID="txtb"runat="server"></asp:TextBox>

<asp:Button ID="btnsum"OnCommand="Calculator" CommandName="cal"

CommandArgument="sum"runat="server"Text="+" Width="45px"/> <asp:Button ID="btnsub"OnCommand="Calculator"CommandName="cal"

CommandArgument="sub"runat="server"Text="-"Width="45px"/> <asp:Button ID="btnmul"OnCommand="Calculator"CommandName="cal"

CommandArgument="mul"runat="server"Text="X"Width="45px"/> <asp:Button ID="btndiv"OnCommand="Calculator"CommandName="cal"

CommandArgument="div"runat="server"Text="/"Width="45px"/> <hr />

<asp:Label ID="lblresult"runat="server" Text="Label"></asp:Label> <hr />

<asp:RequiredFieldValidator ID="RequiredFieldValidator1"runat="server" ControlToValidate="txta"ErrorMessage="Bạn phải nhập a"

Visible="False"></asp:RequiredFieldValidator>

<asp:RangeValidator ID="RangeValidator1"runat="server"

ControlToValidate="txta"ErrorMessage="a phải là kiểu nguyên" MaximumValue="9999999"MinimumValue="0" Type="Integer"

Visible="False"></asp:RangeValidator>

<asp:RequiredFieldValidator ID="RequiredFieldValidator2"runat="server" ControlToValidate="txtb"ErrorMessage="Bạn phải nhập b"

Visible="False"></asp:RequiredFieldValidator>

<asp:RangeValidator ID="RangeValidator2"runat="server"

ControlToValidate="txtb"ErrorMessage="a phải là kiểu nguyên" MaximumValue="9999999"MinimumValue="0" Type="Integer"

Visible="False"></asp:RangeValidator> <p>

&nbsp;</p>

<asp:ValidationSummary ID="ValidationSummary1" runat="server"/>

Code 2 Caculator.ascx.cs

using System;

publicpartialclassCaculator : System.Web.UI.UserControl

{ (adsbygoogle = window.adsbygoogle || []).push({});

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;

lblresult.Text = Convert.ToString(int.Parse(txta.Text) * int.Parse(txtb.Text)); break;

case "div": {

if (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 htmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

<title>Su dung Webcontrol</title>

<style type="text/css">

html{ background-color:#e5e5e5}

.divmain{ background-color:White; margin:15px; padding:15px; top:30px; left:150px; position:absolute;}

</style> </head> <body>

<form id="form1"runat="server">

<div>

<div class="divmain">

<main:cal ID="maincal"runat="server" />

</div>

</div>

</form> </body> </html>

Một phần của tài liệu Giáo trình ASP.NET cơ bản doc (Trang 81 - 83)