asp.net基礎(chǔ)學(xué)習(xí)之控件的使用方法
本文為大家分享了asp.net控件的使用方法,供大家參考,具體內(nèi)容如下
1.asp.net頁面插入c#代碼
事先聲明:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
引入格式: <% %>
變量可以:<%=val %>
<body> <h2>從今天開始學(xué)習(xí)ASP.NET</h2> <form id="form1" runat="server"> <div> 歡迎使用vs2012<%= DateTime.Now %></div> </form> </body>
2.服務(wù)器控件和html控件
服務(wù)器控件:
- ASP.NET服務(wù)器控件是服務(wù)器端ASP.NET網(wǎng)頁上的對象,當(dāng)用戶通過瀏覽器請求ASP.NET網(wǎng)頁時,這些控件將在服務(wù)器上運行,并向客戶端呈現(xiàn)HTML標(biāo)記。
- 在ASP.NET頁面上,服務(wù)器控件表現(xiàn)為一個標(biāo)記,例如<asp:textbox…/>。這些標(biāo)記不是標(biāo)準(zhǔn)的HTML元素,因此如果它們出現(xiàn)在網(wǎng)頁上,瀏覽器將無法理解它們,然而,當(dāng)從Web服務(wù)器上請求一個ASP.NET頁面時,這些標(biāo)記都將動態(tài)地轉(zhuǎn)換為HTML元素。
- 使用ASP.NET服務(wù)器控件,可以大大減少開發(fā)Web應(yīng)用程序所需編寫的代碼量,提高開發(fā)效率和Web應(yīng)用程序的性能。
HTML控件
- 默認情況下,ASP.NET文件中的HTML元素作為文本進行處理,并且不能在服務(wù)器端代碼中引用這些元素,只能在客戶端通過javascript和vbscript等腳本語言來控制。
- 默認情況下, ASP.NET文件中的HTML元素被視為傳遞給瀏覽器的標(biāo)記,作為文本進行處理,不能在服務(wù)器端的代碼中引用這些元素。
- 若要使這些元素能以編程方式進行訪問,可以通過添加runat=”server”屬性表明應(yīng)將HTML元素作為服務(wù)器控件進行處理,這樣就可使用基于服務(wù)器的代碼對其進行編程引用了。
- 添加了屬性runat=”server”的HTML元素就轉(zhuǎn)換為HTML服務(wù)器控件了。移除控件標(biāo)記中的runat=”server”屬性,HTML服務(wù)器控件就轉(zhuǎn)換為HTML元素了。
總結(jié):
標(biāo)準(zhǔn)控件和HTML控件之間似乎有一些重疊,但是HTML控件的功能比標(biāo)準(zhǔn)類別中的控件的功能少得多。一般來說,標(biāo)準(zhǔn)類別中的真正服務(wù)器控件提供了更多的功能。不過這種功能是有代價的。因為它們增加了復(fù)雜度,所以處理服務(wù)器控件會多花一點時間。然而,在大多數(shù)Web站點上,可能不會注意到這一差別。只有在一個高通信量的Web站點,且在頁面上有很多控件時,使用HTML控件才會提供稍好一些的性能。
3.控件添加事件/事件的綁定
(1) 在ASP.NET頁面中,在聲明控件時,指定該控件的事件對應(yīng)的事件處理程序。
給button添加onclick事件:
前臺aspx
<asp:Button ID="Button1" runat="server" Text="Button" onclick="MyClick" />
后臺.cs代碼
protected void MyClick(object sender, EventArgs e) { Response.Write("<script>alert('sss')</script>"); }
可以雙擊該控件直接添加事件。
(2) 如果控件是動態(tài)創(chuàng)建的,則需要通過編寫代碼動態(tài)地將事件綁定到方法,例如:
Button myBtn = new Button(“Button1”);
myBtn.Text = “提交”;
myBtn.Click += new System.EventHandler(ButtonClick);
4.控件的屬性
•設(shè)置控件的顏色
•設(shè)置控件的字體
5.驗證控件
ASP.NET提供的6個有效性驗證控件中,5個控件用來執(zhí)行實際的有效性驗證,而最后一個控件ValidationSummary用來向用戶提供頁面中出現(xiàn)的錯誤的反饋信息。
•RequiredFieldValidator:驗證一個必填字段
•CompareValidator:將用戶輸入與一個常數(shù)值或者另一個控件或特定數(shù)據(jù)類型的值進行比較(使用小于、等于或大于等比較運算符)
•RangeValidator:RangeValidator控件可以用來判斷用戶輸入的值是否在某一特定范圍內(nèi)
•RegularExpressionValidator:它根據(jù)正則表達式來驗證用戶輸入字段的格式是否合法,如電子郵件、身份證、電話號碼等
•CustomValidator:使用自己編寫的驗證邏輯檢查用戶輸入。此類驗證能夠檢查在運行時派生的值
•ValidationSummary:該控件不執(zhí)行驗證,但該控件將本頁所有驗證控件的驗證錯誤信息匯總為一個列表并集中顯示
兩個常用的控件:
RangeValidator控件
RangeValidator控件允許檢查一個值是否落在特定的范圍內(nèi)。這個控件能檢查字符串、數(shù)字、日期和貨幣等數(shù)據(jù)類型。除了上述共有屬性之外,RangeValidator控件還有其他幾個重要屬性
•MinimumValue 該屬性確定可接受的最小值。例如,當(dāng)檢查1和10之間的整數(shù)時,將該屬性設(shè)置為1
•MaximumValue 該屬性確定可接受的最大值。例如,當(dāng)檢查1和10之間的整數(shù)時,將該屬性設(shè)置為10
•Type 該屬性確定有效性驗證控件檢查的數(shù)據(jù)類型。可以設(shè)置為String、Integer、Double、Date或Currency來檢查各自的數(shù)據(jù)類型
用法匯總:
<form id="form1" runat="server"> <div> 姓名: <asp:TextBox ID="txtRequiredField" runat="server"></asp:TextBox> <%--RequiredFieldValidator:驗證一個必填字段--%> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="姓名不能為空!" ControlToValidate="txtRequiredField"></asp:RequiredFieldValidator> <br /> 年齡: <asp:TextBox ID="txtRange" runat="server"></asp:TextBox> <%--RangeValidator:RangeValidator控件可以用來判斷用戶輸入的值是否在某一特定范圍內(nèi)--%> <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="年齡不在規(guī)定范圍內(nèi)!" ControlToValidate="txtRange" MaximumValue="100" MinimumValue="0" Type="Integer"></asp:RangeValidator> <br /> 密碼: <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> <br /> 密碼確認: <asp:TextBox ID="txtPasswordConfirm" runat="server"></asp:TextBox> <%-- CompareValidator:將用戶輸入與一個常數(shù)值或者另一個控件或特定數(shù)據(jù)類型的值進行比較(使用小于、等于或大于等比較運算符)--%> <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="密碼前后輸入,不一致!" ControlToCompare="txtPassword" ControlToValidate="txtPasswordConfirm"></asp:CompareValidator> <br /> 郵箱: <asp:TextBox ID="txtMail" runat="server"></asp:TextBox> <%--RegularExpressionValidator:它根據(jù)正則表達式來驗證用戶輸入字段的格式是否合法,如電子郵件、身份證、電話號碼等--%> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="郵箱格式不符!" ControlToValidate="txtMail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> <br /> <%--ValidationSummary:該控件不執(zhí)行驗證,但該控件將本頁所有驗證控件的驗證錯誤信息匯總為一個列表并集中顯示--%> <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="驗證信息匯總" /> <br /> <asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" /> </div> </form>
6.導(dǎo)航控件
ASP.NET 4提供了3個有用的導(dǎo)航控件:SiteMapPath、TreeView和Menu。
1.SiteMapPath:這個Web控件提供一個面包條(breadcrumb),它是一行文本,顯示用戶當(dāng)前在網(wǎng)站結(jié)構(gòu)中的位置。例如,在網(wǎng)上書店中,如果用戶瀏覽到《Visual
C++》時,面包條可能類似于“主頁->計算機->編程類->Visual
C++”,其中每部分(如主頁,計算機等)都顯示為返回到前一部分的鏈接。面包條能夠讓用戶快速地查看當(dāng)前在網(wǎng)站中的位置,并沿邏輯層次結(jié)構(gòu)向上導(dǎo)航。
2.Menu:這個Web控件提供網(wǎng)站結(jié)構(gòu)的層次視圖。對于學(xué)校的網(wǎng)站,頂層菜單將包含主類別(如學(xué)校介紹、機構(gòu)設(shè)置、新聞等),每個菜單項又可以包含各自的子菜單,顯示各自的子類別。
3.TreeView:樹視圖提供了與菜單相同的數(shù)據(jù),唯一的區(qū)別是顯示數(shù)據(jù)的方式。樹視圖顯示為可展開或可折疊的樹,而菜單(Menu)是由菜單項和子菜單組成。
站點地圖文件:
關(guān)于站點的層級關(guān)系,就和html標(biāo)簽中的層級關(guān)系一樣。
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="Default.aspx" title="首頁" description=""> <siteMapNode url="Default2.aspx" title="第二頁" description="" /> <siteMapNode url="Default3.aspx" title="第三頁" description="" /> </siteMapNode> </siteMap>
在aspx文件中引用站點地圖:
<form id="form1" runat="server"> <%--Using SiteMapPath--%> <asp:SiteMapPath ID="SiteMapPath1" runat="server"></asp:SiteMapPath> <!-- 此處的 SiteMapDataSource 控件是提供給TreeView 和 Menu 使用 --> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> <%--Using TreeView--%> <asp:TreeView ID="TreeView1" runat="Server" DataSourceID="SiteMapDataSource1" /> <%--Using Menu--%> <asp:Menu ID="Menu2" runat="server" DataSourceID="SiteMapDataSource1" /> <%--Using a Horizontal Menu--%> <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" StaticDisplayLevels="2" /> </form>
7.用戶控件
對于用戶控件,在asp.net開發(fā)中,是一個很重要的內(nèi)容,他可以很大程序的簡化使用過程。(其實就是多個控件?包括HTML控件和服務(wù)器控件?的組合,并且可以自定義屬性)
制作一個用戶控件。解決方案管理器-》右鍵-》添加新項-》Web用戶控件。在解決方案管理器里多一個.ascx文件,這個文件就是一個控件。
1.添加控件代碼: 拖入幾個服務(wù)器空間,并雙擊button進入后臺:
<asp:Label ID="ColumnName" runat="server"></asp:Label>
<asp:TextBox ID="Condition" runat="server"></asp:TextBox>
<asp:Button ID="Search" runat="server" Text="搜索"/>
2.添加控件事件和屬性:
public string lableText { get; set; } //提示用戶輸入什么樣的查詢條件
public string connectionString { get; set; } //連接數(shù)據(jù)庫
public GridView resultGridView { get; set; } //要填充的GridView控件
public string tableName { get; set; } //要查詢數(shù)據(jù)庫中的數(shù)據(jù)表名
public string columnCondition { get; set; } //根據(jù)哪一條進行查詢
public string errorMessage { get; set; } //錯誤信息
使用自定義控件:
將ascx文件直接拖動到我們要使用的那個頁面即可。
<form id="form1" runat="server"> <div> <uc1:WebUserControl runat="server" ID="WebUserControl" /> </div> </form>
可以查看到添加的屬性:
為大家附3個精彩的專題:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET預(yù)備知識學(xué)習(xí)筆記
- Asp.net回調(diào)技術(shù)Callback學(xué)習(xí)筆記
- 那些年,我還在學(xué)習(xí)asp.net(二) 學(xué)習(xí)筆記
- 那些年,我還在學(xué)asp.net(一) 學(xué)習(xí)筆記
- asp.net Linq to Xml學(xué)習(xí)筆記
- ASP.NET MVC學(xué)習(xí)筆記
- asp.net自定義控件代碼學(xué)習(xí)筆記
- asp.net基礎(chǔ)學(xué)習(xí)之前端頁面布局
- ASP.NET與MySQL數(shù)據(jù)庫簡明圖示入門教程
- 值得收藏的asp.net基礎(chǔ)學(xué)習(xí)筆記
相關(guān)文章
基于asp.net MVC 應(yīng)用程序的生命周期(詳解)
下面小編就為大家分享一篇基于asp.net MVC 應(yīng)用程序的生命周期詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Asp.net配合easyui實現(xiàn)返回json數(shù)據(jù)實例
這篇文章主要介紹了Asp.net配合easyui實現(xiàn)返回json數(shù)據(jù)的方法,實例分析了Asp.net配合easyui返回json數(shù)據(jù)時出現(xiàn)的問題及解決方法,非常具有實用價值的技巧,需要的朋友可以參考下2014-12-12ASP.NET?Core使用Swagger/OpenAPI規(guī)范
這篇文章介紹了ASP.NET?Core使用Swagger/OpenAPI規(guī)范的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04ASP.NET Core應(yīng)用中與第三方IoC/DI框架的整合
ASP.NET Core應(yīng)用中,針對第三方DI框架的整合可以通過在定義Startup類型的ConfigureServices方法返回一個ServiceProvider來實現(xiàn)。但是并不是那么容易的,下面通過實例給大家分享一下2017-04-04.net下實現(xiàn)Word動態(tài)填加數(shù)據(jù)打印
.net下實現(xiàn)Word動態(tài)填加數(shù)據(jù)打印...2007-04-04Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
這篇文章詳細介紹了無刷新文件上傳并顯示進度條的思路和代碼,有需要的朋友可以參考一下2013-06-06