當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

ASP.NET 快速構(gòu)建應(yīng)用程序頁(yè)面主框架
2021-09-09 14:09:08

ASP.NET 的出現(xiàn)給web 程序設(shè)計(jì)帶來(lái)了一場(chǎng)革命,它具有windows 那種即見即所得的快捷,高度的封裝給程序設(shè)計(jì)降低了難度,豐富的界面控件提高了軟件設(shè)計(jì)的效率因而也縮短了開發(fā)周期,代碼隱藏和分離技術(shù)使的程序的可讀性和可維護(hù)性大大提高,加之ADO.NET數(shù)據(jù)庫(kù)訪問技術(shù),將windows的程序設(shè)計(jì)思想完全容入到web設(shè)計(jì)之中。下面是我使用其構(gòu)建一個(gè)系統(tǒng)整體構(gòu)架的簡(jiǎn)單練習(xí):

1、登錄頁(yè)面:

首先是一個(gè)登錄用戶的驗(yàn)證,接著是一系統(tǒng)公告和一個(gè)跑馬燈的公告提示,最后是一些連接及版權(quán)說(shuō)明。前臺(tái)完全用WebControls 來(lái)作,后臺(tái)使用C#編碼來(lái)實(shí)現(xiàn)用戶的登錄用戶名及密碼和數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)進(jìn)行比較驗(yàn)證,正確則登錄并且將用戶的userid和username 賦給全局變量Session["userid"]和Session["username"]以便在后面的頁(yè)面上驗(yàn)證Session來(lái)判斷用戶是否一登錄,將頁(yè)面定向到Index.aspx,若驗(yàn)證用戶名或密碼失敗則給出響應(yīng)的提示信息,實(shí)現(xiàn)代碼如下:

private void imgbtnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
? {
? //判斷用戶名、密碼是否錄入
? ?string username = txtUserName .Text .Trim ();
? ?string userpasw = txtPassword .Text .Trim ();
? ?string SqlUser????= "select * from Users??where UserID = '" + username + "'";

? ?DataSet UserDtset = new DataSet();

? ?UserDtset?????????= login.GetDataSet (SqlUser);???
? ?//判斷用戶名是否存在
? ?int SqlCount??????= UserDtset.Tables[0].Rows.Count;
? ?if (SqlCount == 0)
? ?{
? ? ShowMessage("用戶名不存在,請(qǐng)重新錄入!",Page);
? ? return;?????
? ?}
? ?//判斷密碼是否正確
? ?string passwd = UserDtset.Tables[0].Rows[0]["password"].ToString();
? ?if (passwd != userpasw)
? ?{
? ? ShowMessage("密碼不正確,請(qǐng)重新錄入!",Page);
? ? return;
? ?}
? ?//賦給全局變量值
? ?Session["UserID"]=UserDtset .Tables [0].Rows [0]["UserID"].ToString ();
? ?Session ["UserName"]=UserDtset .Tables [0].Rows [0]["Name"].ToString ();
? ?Response .Redirect ("index.aspx");

}

//提示信息

? private void ShowMessage(string MsgText,System.Web.UI.Page PageObject)
? {???
? ?StringBuilder SList = new StringBuilder();
? ?SList.Append("<script language =javascript> ");
? ?SList.Append("alert('"+MsgText +"'); ");
? ?SList.Append("</script>");
? ?PageObject.RegisterStartupScript("",SList.ToString());???????
? }

login.aspx中的其它部分 如:公告使用控件DataGrid將數(shù)據(jù)庫(kù)中的數(shù)據(jù)讀出來(lái)即可。

2、Index.aspx頁(yè)面是程序的主頁(yè)面 主要包括三部分 頂部一個(gè)Banner 、左邊是一個(gè)TreeVew、右邊是用于顯示的主操作區(qū),左邊的Treeview 主要用于導(dǎo)航,這個(gè)一面主要使用的Fram 將幾個(gè)頁(yè)面拼接起來(lái)形成一個(gè)頁(yè)面 后臺(tái)代碼:

private void Page_Load(object sender, System.EventArgs e)
? {
? ?if(!IsPostBack)
? ?{
? ? if(Session ["UserName"]==null )//斷Session若為空則跳轉(zhuǎn)到登錄頁(yè)面
? ? ? ?Response .Redirect ("Check.aspx");
? ?}
? }

這里使用了一個(gè)驗(yàn)證頁(yè)面Check.aspx 若用戶沒有登錄或者是Session超時(shí)都會(huì)轉(zhuǎn)到此頁(yè)面后三秒鐘后轉(zhuǎn)到登錄頁(yè)面,次頁(yè)面有有提示信息:沒有登錄或者登錄超時(shí)請(qǐng)重新登錄;

3、我的需求和我提出的需求頁(yè)面 主要是由主細(xì)目組成 都可以使用控件綁定數(shù)據(jù)庫(kù)來(lái)完成,比較簡(jiǎn)單不再詳述。



本文摘自 :https://blog.51cto.com/u

開通會(huì)員,享受整站包年服務(wù)立即開通 >