ung dung web chuong 4

36
Chương 4 Chương 4 Điu khin HTML v điu khin kim tra hp l

Upload: giang-nguyen

Post on 17-Jul-2015

277 views

Category:

Education


2 download

TRANSCRIPT

Chương 4Chương 4

Điêu khiên HTML va điêu khiên kiêm tra hơp lê

Muc tiêu Giơi thiêu HTML Control

Phân loai Validation Control

Giai thich Code Behind

Thưc thi Code behind

Giơi thiêu HTML ControlGiơi thiêu HTML Control Cac phân tư HTML trong tâp tin ASP.NET file đươc xư ly la chuôi thông

thương. Cac phân tư nay không thê truy xuât qua lâp trinh. Nêu muôn chung ta

phai chi ra cac phân tư HTML đươc phân tich va xư ly như la môt điêu khiên server

Co thê thưc hiên băng cac thêm thuôc tinh runat="server" vao phân tư HTML

Thuôc tinh id cua phân tư HTML cho phep chung ta lâp trinh tham chiêu đên cac phân tư.

Cac điêu khiên server phai đươc đăt bên trong the <form> cung vơi thuôc tinh runat="server".

Giơi thiêu HTML ControlGiơi thiêu HTML Control……

HtmlForm– Dung đê tao môt container cho cac phân tư trong trang.

HtmlImage – Dung đê hiên thi môt hinh anh.

HtmlInputFile– Dung đê tai môt tâp tin lên server.

HtmlInputFile – Vi duHtmlInputFile – Vi du<%@ Page Language="C#" AutoEventWireup="True" %><html> <script runat="server"> void BtnUpload_Click(Object sender, EventArgs e) { // Display information about posted file FileName.InnerHtml = MyFile.PostedFile.FileName; MyContentType.InnerHtml =

MyFile.PostedFile.ContentType; ContentLength.InnerHtml =

MyFile.PostedFile.ContentLength.ToString(); FileDetails.Visible = true; // Save uploaded file to server

MyFile.PostedFile.SaveAs("c:\\Inetpub\\uploadfile.doc");

} </script>

HtmlInputFile - OutputHtmlInputFile - Output

<body> <form action="Ch4Ex1.aspx" method="post" enctype="multipart/form-data" runat="server"><h1>Upload File on the server</h1> Select File : <input id="MyFile" type="file" runat="server"><br><br> <input type=submit value="Upload File" OnServerclick="BtnUpload_Click" runat="server"> <br><br><br> <div id="FileDetails" Visible=false runat="server"> FileName: <span id="FileName" runat="server"/> <br> ContentType: <span id="MyContentType" runat="server"/><br>

HtmlInputFile - OutputHtmlInputFile - Output

ContentLength: <span id="ContentLength" runat="server"/>bytes <br> </div> </form> </body></html>

Môt sô điêu khiên HTML ServerMôt sô điêu khiên HTML Server

Điêu khiên Mô ta

HtmlAnchor Cho phep liên kêt đên trang Web khac

HtmlButton Cho phep tao nut nhân

HtmlInputImage Cho phep tao nut nhân(hiên thi dung hinh anh)

HtmlInputText Cho phep nhân môt dong văn ban.

HtmlInputRadioButton Cho phep tao môt radio button

HtmlSelect Cho phep tao môt list control

HtmlTextArea Cho phep môt ô nhâp liêu nhiêu dong

HtmlTable Cho phep tao bang

Validation ControlNgăn chăn trương nhâp trông

So sanh hai trương

Kiêm tra theo vung

Kiêm tra gia tri theo biêu thưc

Kiêm tra gia tri tai client hay server

Danh sach tât ca cac lôi trong trang

RequiredFieldValidator – Vi duRequiredFieldValidator – Vi du

<html> <form runat="server">

<center><b>User Details Page</b> </center> <br> Name : &nbsp &nbsp <asp:textbox id="txtName" runat=server /> <asp:requiredfieldvalidator

controltovalidate="txtName" display="static" errormessage="Name has to be entered!" runat=server/>

<br><br> <center><asp:button id= btnSubmit text="submit"

runat=server /> </center> </form></html>

Không nhâp gia tri

Không nhâp gia tri

Thông bao lôiThông bao lôi

RequiredFieldValidator - RequiredFieldValidator - OutputOutput

RequiredFieldValidator – Thuôc RequiredFieldValidator – Thuôc tinhtinh

Controltovalidate thuôc tinh chi điêu khiên cân đươc kiêm tra hơp lê.

Errormessage thuôc tinh dung đê chi ra thông bao lôi hiên thi khi sư dung điêu khiên RequiredFieldValidator trong trang.

Khi gan Display la static, môt khoang không gian nao đo trên trang đươc danh cho thông bao lôi ngươc lai cho trương hơp gan la dynamic.

Hiên thi tự đông

Thông bao lỗi

Trước khi hiển thị lỗi

Sau khi hiển thị lỗi

CompareValidator – Ví du 1<html> <form runat="server">

<center><b>User Details Page</b></center><br>Name : &nbsp &nbsp<asp:textbox id="txtName" runat=server /><asp:requiredfieldvalidator id="reqvaln"

controltovalidate="txtName" errormessage="Name has to be entered" display="dynamic" runat=server/>

<br>Age : &nbsp &nbsp &nbsp <asp:textbox id="txtAge" runat=server /><asp:requiredfieldvalidator id="reqvala"

controltovalidate="txtAge" errormessage="Age has to be entered" display="dynamic" runat=server/>

CompareValidator – Vi du 1CompareValidator – Vi du 1

<asp:comparevalidator controltovalidate="txtAge" display="dynamic" errormessage="Age cannot be greater than 58" valuetocompare=58 type="Integer" operator="LessThanEqual" runat=server>

</asp:comparevalidator><br><br><center><asp:button id=btnSubmit text="submit"

runat=server/></center>

</form></html>

CompareValidatorCompareValidator – Thuôc tinh– Thuôc tinh Thuôc tinh kiêu cua dung đê chi ra kiêu dữ liêu cua hai gia tri cân so sanh:

String Integer Double Date Currency

Thuôc tinh Operator property dung đê chi ra kiêu so sanh đươc thưc hiên: Equal == NotEqual != GreaterThan > GreaterThanEqual >= LessThan < LessThanEqual <=

CompareValidator – Ví du 2<html> <form runat="server">

<center><b>User Details Page</b></center><br>Name : <asp:textbox id="txtName" runat=server /><asp:requiredfieldvalidator id="reqvaln"

controltovalidate="txtName" errormessage="Name has to be entered" display="dynamic" runat=server/>

<br>Age : <asp:textbox id="txtAge" runat=server /><asp:requiredfieldvalidator id="reqvala"

controltovalidate="txtAge" errormessage="Age has to be entered" display="dynamic" runat=server/>

CompareValidator – Vi du 2CompareValidator – Vi du 2

<asp:comparevalidator controltovalidate="txtAge" display="dynamic" errormessage="Age cannot be greater than 58" valuetocompare=58 type="Integer" operator="LessThanEqual" runat=server/>

<br>Date of Birth : <asp:textbox id="txtDob" runat=server /><br>Date of Joining :<asp:textbox id="txtDoj" runat=server /><asp:comparevalidator controltovalidate="txtDoj"

display="dynamic" errormessage="Date of Birth cannot be greater than or equal to Date of Joining" Controltocompare="txtDob" type="Date" operator="GreaterThan" runat=server/>

CompareValidator – Vi du 2CompareValidator – Vi du 2

<br><br><center><asp:button id=btnSubmit text="submit"

runat=server /></center> </form></html>

RangeValidatorRangeValidator

RangeValidator dung đê kiêm tra gia tri trong môt khoan nao đo.

Miên gia tri co thê dưa trên 2 control nao đo hoăc miên gia tri cô đinh nao đo.

<asp:textbox id="txtAge" runat=server/><asp:rangevalidator controltovalidate="txtAge" type="Integer" minimumvalue="18" maximumvalue="58"errormessage="Your age must be in the range of 18-58 yrs" display="dynamic" runat="server" ></asp:rangevalidator>

RegularExpressionValidatorRegularExpressionValidator

Gia tri nhâp vao control theo môt đinh dang nao đo, vi du: đia chi email hay điên thoai.

Gia tri nhâp vao phai khơp vơi mẫu đươc chi ra trong thuôc tinhValidationExpression.

RegularExpressionValidator Cac kí hiêu

Kí hiệu Ý nghĩa

^ Chỉ ra vi trí bắt đầu kiêm tra

$ Chỉ ra vi trí kiêm tra kêt thuc

[] Kiêm tra gia tri nhâp vào khớp với cac kí tự trong []

\w Cho phep kí tự bât ki

\d{} “\d” chỉ ra gia tri nhâp vào phai là số, {} chỉ ra chiêu dài của chuỗi số

+ Chỉ ra môt hay nhiêu cac phần tử thêm vào biêu thức phai được kiêm tra

RegularExpressionValidator Code Snippet

<asp:textbox id="txtEmailid" runat=server/><asp:regularexpressionvalidator controltovalidate="txtEmailid" display="static" validationexpression="^[\w-]+@[\w-]+\.(com|net|org|edu)$" runat=server>E-mail Id is not in the correct format</asp:RegularExpressionValidator>

CustomValidatorCustomValidator CustomValidator dung trong cac trương hơp cac control ở trên

không đap ứng đươc kiêm tra hơp lê dữ liêu

Những control nay gọi thưc hiên ham tai phia client hoăc server.

Code Snippet

<asp:customvalidator runat="server" controltovalidate="txtGrade" clientvalidationfunction="clientval"onservervalidate="serverval" display="static">Wrong value</asp:customvalidator>

ValidationSummaryValidationSummary Lôi kiêm tra hơp lê trên trang co thê đươc hiên thi theo 2 cach:

Lôi co thê đươc hiên thi luc tiêu điêm trên control bi mât Tât ca cac thông bao lôi trên trang co thê đươc hiên thi cung nhau

Control ValidationSummary co thê dung đê tao cac thông bao lôi tom tắt

Lôi co thê đươc xem theo dang list, bullets, hay đoan

Code Snippet -

<asp:validationsummary id="ValSum" headertext="The errors found are: " displaymode="singleparagraph" runat="server"/>

Thuôc tinh Page.IsValidThuôc tinh Page.IsValid Đôi tương Page co thuôc tinh IsValid, no tra vê

true nêu tât ca kiêm tra hơp lê la thanh công, tra vè vê false nêu thâm chi co môt điêu khiên kiêm tra không thanh công

Ngươi dung co thê điêu hương đên môt trang khac hay hiên thi lôi phu hơp

Page.IsValid Ví du<html> <form runat="server">

<script language="C#" runat="server" >void subbtn(Object Src, EventArgs E){ if (Page.IsValid == true) { lblMessage.Text = "Page is Valid!"; }} </script><center><b>User Details Page</b></center><br><br><asp:label id="lblMessage" runat="server"/><br><br>Name : <asp:textbox id="txtName" runat=server />

Page.IsValid Vi duPage.IsValid Vi du<asp:requiredfieldvalidator id="reqvaln"

controltovalidate="txtName" errormessage="Name has to be entered" display="dynamic" runat=server/>

<br>Age :

<asp:textbox id="txtAge" runat=server /><asp:requiredfieldvalidator id="reqvala"

controltovalidate="txtAge" errormessage="Age has to be entered" display="dynamic" runat=server/>

<asp:comparevalidator controltovalidate="txtAge" display="dynamic" errormessage="Age cannot be greater than 58" valuetocompare=58 type="Integer" operator="LessThanEqual" runat=server/>

<br>

Page.IsValid Vi duPage.IsValid Vi du

Date of Birth : <asp:textbox id="txtDob"

runat=server /><br>Date of Joining :<asp:textbox id="txtDoj"

runat=server /><asp:comparevalidator

controltovalidate="txtDoj" display="dynamic" errormessage="Date of Birth cannot be greater than or equal to Date of Joining" Controltocompare="txtDob" type="Date" operator="GreaterThan" runat=server/>

<br><br><center><asp:button id=btnSubmit

text="submit" onclick="subbtn" runat=server /></center>

Page.IsValid Property – Kết xuấtPage.IsValid Property – Kết xuất

<asp:validationsummary id="ValSum" headertext="Errors are: " displaymode="bulletlist" runat="server"/> </form></html>

<%@ Page ClientTarget= DownLevel %> <%@ Page ClientTarget= DownLevel %>

disable client-side validation

Trinh duyêt mức thâp và cao

Code BehindCode Behind Đê giam đô phức tap khi tao trang web vơi hinh anh va chât

lương. ASP.Net cung câp kĩ thuât “Code Behind”. Chung ta co thê viêt code theo yêu câu chức năng trong môt tâp

tin tach biêt hơn la nhung lẫn lôn vao trong trang Web. Tâp tin class chứa cac ham đươc tao trong tâp tin .cs

<%@ Page language="C#" Inherits="codebehind" %> <html> <form runat="server">

<center><b>User Details Page</b></center> <asp:label id="lblMessage" runat="server"/><br>

Name : &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <asp:textbox id="txtName" runat=server /><asp:requiredfieldvalidator id="reqvaln"

controltovalidate="txtName" errormessage="Name has to be entered" display="dynamic" runat=server/>

<br>Age : &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <asp:textbox id="txtAge" runat=server /><asp:requiredfieldvalidator id="reqvala"

controltovalidate="txtAge" errormessage="Age has to be entered" display="dynamic" runat=server/>

Provides the functionality

Code Behind – Ví du

A

<asp:comparevalidator controltovalidate="txtAge" display="dynamic" errormessage="Age cannot be greater than 58" valuetocompare=58 type="Integer" operator="LessThanEqual" runat=server/><br>Date of Birth : &nbsp &nbsp<asp:textbox id="txtDob" runat=server /><br>Date of Joining :<asp:textbox id="txtDoj" runat=server /><asp:comparevalidator controltovalidate="txtDoj" display="dynamic" errormessage="Date of Joining cannot be greater than or equal to date of Birth" Controltocompare="txtDob" type="Date" operator="GreaterThan" runat=server/><br> <br><center><asp:button id=btnSubmit text="submit" onclick="subbtn" runat=server /></center><asp:validationsummary id="ValSum" headertext="Errors are: " displaymode="bulletlist" runat="server"/></form></html>

Code Behind Vi du…Code Behind Vi du…

A

using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;

public class codebehind: Page{

public System.Web.UI.WebControls.Label lblMessage;

public System.Web.UI.WebControls.Button btnSubmit;

using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;

public class codebehind: Page{

public System.Web.UI.WebControls.Label lblMessage;

public System.Web.UI.WebControls.Button btnSubmit;

BIN

Code Behind Vi du…Code Behind Vi du…

Code Behind Vi du…Code Behind Vi du…

protected void subbtn(Object Src, EventArgs E){

if (Page.IsValid == true) {

lblMessage.Text = "Page is Valid!";}

}

void Main(){}

}