從零開始學(xué)ASP.NET-基礎(chǔ)篇第2/7頁
第三天
學(xué)習(xí)目的:
今天的內(nèi)容稍多些,而且涉及一些比較常用的,如IsPostBack及DataTable的基本用法。
知識點(diǎn):
IsPostBack:在頁面onLoad之間是false值,而當(dāng)從服務(wù)器回傳后,該值變?yōu)閠rue。當(dāng)頁面中的Button或ImageButton等觸發(fā)事件,都會(huì)把表單回傳到服務(wù)器,而返回時(shí)又會(huì)引發(fā)onLoad事件。為了節(jié)省服務(wù)器資源,有些加載中需進(jìn)行一次,而不需要在回傳后多次發(fā)生,可以用!IsPoskBack來作為條件,那么頁面第一次加載后,以后就不會(huì)發(fā)生。該屬性可以幫助你提高程序的性能。
DataTable:即數(shù)據(jù)表,.Net 程序中最常用的類,特別是數(shù)據(jù)庫開發(fā)中,沒有該類的程序是不可想象的。
先做個(gè)小程序來練練手,很簡單,就一個(gè)下拉菜單,取名dlstWeb。在屬性的Itmes選項(xiàng)中打開以下對話框,添加各項(xiàng):
圖片如下:

ASPX中的代碼為:
<asp:DropDownList id="dlstWeb" style="Z-INDEX: 101; LEFT: 32px;
POSITION: absolute; TOP: 32px" runat="server"
Width="88px" AutoPostBack="True">
<asp:ListItem value="http://www.sina.com.cn">新浪 </asp:ListItem>
<asp:ListItem value="http://www.sohu.com">搜狐</asp:ListItem>
<asp:ListItem value="http://www.163.com">網(wǎng)易</asp:ListItem>
</asp:DropDownList>
在下拉框的SelectedIndexChanged事件中的加入代碼:
private void dlstWeb_SelectedIndexChanged(object sender, System.EventArgs e)
{
Response.Write("<script language=javascript>window.open("" +dlstWeb.Selectedvalue + "");</script>");
}
按F5運(yùn)行,可是我們發(fā)現(xiàn)這下拉框選擇時(shí)什么事也沒發(fā)生。原來原因是出在下拉框的AutoPostBack屬性上,把它設(shè)為true后再試試,一切OK了。
下面我們增加些難度,下拉框中的內(nèi)容很多情況下不是事先固定的,而是要?jiǎng)討B(tài)添加。這里設(shè)計(jì)是用一數(shù)據(jù)表DataTable與之聯(lián)系起來。
另建一文件,按上添加一下拉框,取名dlstWeb,先設(shè)AutoPostPack為false,否則在剛啟動(dòng)而面就觸發(fā)SelectedIndexChanged事件,彈出窗口就亂飛了。
在onLoad事件中添加代碼,注意DataTable用法及IsPoskBack
DataTable屬于System.Data命名空間,所以如果頁面沒預(yù)添加,可以自行增加這一行。
private void Page_Load(object sender, System.EventArgs e)
{
// 用IsPostBack判斷,只在沒有回傳時(shí)才初始化
// 這樣可以防止每次刷新或回傳時(shí),都執(zhí)行一次以下代碼
// 可以節(jié)省服務(wù)器的資源了。
if (!IsPostBack)
{
DataTable dt = new DataTable();
DataRow dr;
// 在表中增加字段
dt.Columns.Add("WebName", typeof(string));
dt.Columns.Add("WebUrl", typeof(string));
// 表中增加行
dr = dt.NewRow();
dr["WebName"] = "新浪";
dr["WebUrl"] = " http://www.sina.com.cn ";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["WebName"] = "網(wǎng)易";
dr["WebUrl"] = " http://www.163.com ";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["WebName"] = "搜狐";
dr["WebUrl"] = " http://www.sohu.com ";
dt.Rows.Add(dr);
// 把表與下拉菜單綁定數(shù)據(jù)
dlstWeb.DataSource = dt;
dlstWeb.DataTextField = "WebName";
dlstWeb.DatavalueField = "WebUrl";
dlstWeb.DataBind();
// 開始時(shí)就把下拉菜單的AutoPostBack設(shè)為false,
// 防止一開始就亂跳出網(wǎng)頁來
dlstWeb.AutoPostBack = true;
}
}
下面的事件與前面一模一樣了
private void dlstWeb_SelectedIndexChanged(object sender, System.EventArgs e)
{
Response.Write("<script language=javascript>window.open("" +dlstWeb.Selectedvalue + "");</script>");
}
小結(jié):今天的一些知識非常重要,為了理解,程序的難度并不高。但這是以后程序設(shè)計(jì)的基礎(chǔ),所以這些你一定要掌握。
VB.NET增加字段代碼稍有不同,如下:
// 在表中增加字段
dt.Columns.Add("WebName", GetType(String))
dt.Columns.Add("WebUrl", GetType(String))
其它都差不多了。
- [ASP.NET Ajax] ECMAScript基礎(chǔ)類以及Asp.net Ajax對類<Object>的擴(kuò)展
- ASP.net基礎(chǔ)知識之常見錯(cuò)誤分析
- ASP.NET 2.0 程序安全的基礎(chǔ)知識
- ASP.NET中實(shí)現(xiàn)文件的保護(hù)性下載基礎(chǔ)篇
- ASP.NET MVC基礎(chǔ)
- ASP.NET MVC小結(jié)之基礎(chǔ)篇(一)
- ASP.NET MVC小結(jié)之基礎(chǔ)篇(二)
- ASP.NET母版頁基礎(chǔ)知識介紹
- ASP.NET 5已終結(jié),迎來ASP.NET Core 1.0和.NET Core 1.0
相關(guān)文章
ASP.NET?Core使用功能開關(guān)控制路由訪問操作
這篇文章主要介紹了ASP.NET?Core使用功能開關(guān)控制路由訪問操作,而對于一些試驗(yàn)性的功能,我們并不希望用密碼去控制是否允許訪問,而是想用一種開關(guān)的方式開放,下面文章我們就來試著實(shí)現(xiàn)這個(gè)功能,需要的小伙伴可以參考一下2022-02-02ASP.NET?Core使用功能開關(guān)控制路由訪問操作(續(xù))
這篇文章主要介紹了ASP.NET?Core使用功能開關(guān)控制路由訪問操作的(續(xù)),上一篇文章我們已經(jīng)介紹過一部份該相關(guān)內(nèi)容,??在本文,我們可以判斷當(dāng)前路由地址是否為調(diào)試地址,讓評估返回真,需要的小伙伴可以參考一下2022-02-02ASP.NET Core MVC 依賴注入View與Controller
本文重點(diǎn)給大家介紹的是ASP.NET Core MVC 之依賴注入 View 和ASP.NET Core MVC 之依賴注入 Controller的相關(guān)資料,需要的小伙伴可以參考下面文章具體內(nèi)容2021-09-09HttpResponse的Output與OutputStream、Filter關(guān)系與區(qū)別介紹
在網(wǎng)上經(jīng)常看見有這樣的代碼HttpResponse response = HttpContext.Current.Response;現(xiàn)在我也來說說這幾個(gè)東東是什么吧2012-11-11.net程序開發(fā)IOC控制反轉(zhuǎn)和DI依賴注入詳解
這篇文章主要為大家介紹了.net程序開發(fā)IOC控制反轉(zhuǎn)和DI依賴注入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11ASP.NET?Core?6最小API中使用日志和DI示例詳解
這篇文章主要為大家介紹了ASP.NET?Core?6最小API中使用日志和DI示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08