1. 程式人生 > >教你看懂C#web頁面

教你看懂C#web頁面

C#web頁面詳解

因為要做一個C#的web系統,所以想著就用web窗體來做,遇到的第一個問題,就是C#的web面其實跟html是有差別的。所以,這裡還是記錄一下學習的歷程。
code:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<!DOCTYPE html PUBLIC "-//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>圖書館管理系統登入頁面</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <link href="css.css" rel="stylesheet" type="text/css"/> <style type="text/css"> <!-- body {
background-color: #DDDDDD; } -->
</style> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <div align="center"> <table id="Table1" width="914" height="759" border="0" cellpadding="0" cellspacing="0"> <tr> <td rowspan="5" bgcolor
="#DDDDDD">
&nbsp;</td> <td height="253" valign="bottom" bgcolor="#65D7D4">&nbsp;</td> <td rowspan="5" bgcolor="#DDDDDD">&nbsp;</td> </tr> <tr><form name="form1" method="post" action="" runat="server"> <td height="249" valign="top" background="images/denglu.gif"><table width="777" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="421" height="103">&nbsp;</td> <td width="65">&nbsp;</td> <td colspan="3">&nbsp;</td> </tr> <tr> <td height="26">&nbsp;</td> <td><span class="daohang1">使用者登入: </span> <label></label></td> <td colspan="3"><label> <asp:TextBox ID="txtAdmin" runat="server"></asp:TextBox> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </label></td> </tr> <tr> <td height="22">&nbsp;</td> <td class="daohang1">使用者密碼:</td> <td colspan="3"><label> <asp:TextBox ID="txtPwd" runat="server" Width="148px" TextMode="Password"></asp:TextBox> &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;</label></td> </tr> <tr> <td height="31">&nbsp;</td> <td><span class="daohang1">驗證碼:</span> <label></label></td> <td colspan="3"><label> <asp:TextBox ID="txtCode" runat="server" Width="96px"></asp:TextBox><asp:Image ID="Image1" runat="server" ImageUrl="~/Common/checkcode.aspx"/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </label></td></tr> <tr> <td height="27">&nbsp;</td> <td>&nbsp;</td> <td width="69"><label> <asp:Button ID="btnLogin" runat="server" Text="登入" OnClick="btnLogin_Click" /> </label></td> <td width="51"><label> <asp:Button ID="btnCancel" runat="server" Text="取消" OnClick="btnCancel_Click" /> </label></td> <td width="171"><label></label></td> </tr> </table></td> </form> </tr> <tr> <td width="777" height="272" bgcolor="#65D7D4">&nbsp;</td> </tr> <tr> <td height="66" background="images/index_14.gif">&nbsp;</td> </tr> <tr> <td colspan="3" bgcolor="#DDDDDD">&nbsp;</td> </tr> </table> </div> </body> </html>
  1. AutoEventWireup: 如果Page指令的AutoEventWireup屬性被設定為 true(或者如果缺少此屬性,因為它預設為true),該``頁框架將自動呼叫頁事件,即Page_Init 和 Page_Load方法。在這種情況下,不需要任何顯式的Handles子句或委託。
  2. Inherits:inherits是定義供應用程式類繼承的程式碼隱藏類。
  3. runat:runat="server"直接回交伺服器,處理資料.
  4. nbsp:它叫不換行空格,全稱No-Break Space,它是最常見和我們使用最多的空格,大多數的人可能只接觸了 ,它是按下space鍵產生的空格。在HTML中,如果你用空格鍵產生此空格,空格是不會累加的(只算1個)。要使用html實體表示才可累加,該空格佔據寬度受字型影響明顯而強烈。

不換行空格和常規空格的區別包括:它不允許斷行;另外因為它不常規,所以它一般不會被當作普通空格合併。
不換行空格本來應該用在文字中需要避免斷行的地方,比如數值的數字和單位之間(比如「100 千米」不應該在中間換行)。

  1. TextMode:TextMode 屬性用於設定或返回 TextBox 控制元件的行為模式。
  2. span: 標籤被用來組合文件中的行內元素。
  3. colspan:colspan 屬性規定單元格可橫跨的列數。
  4. MasterPageFile:MasterPageFile其實是定義一個了外圍的框架的頁面,並且在裡面設定了具體內容存放的位置
  5. ContentPlaceHolder:用來對應包含與當前內容關聯的 ContentPlaceHolder 的 ID啊
    說白了就是去找母版頁相應的ContentPlaceHolder ,然後把內容扔進那裡面去
  6. GridView:它可以非常快速的將資料以表格方式顯示在web頁面上。下面就是一個利用GridView控制元件進行資料繫結的小例子.
    在這裡插入圖片描述
  7. colspan:colspan 屬性規定單元格可橫跨的列數
  8. EnableEventValidation:EnableEventValidation="true"則會在本地驗證,消耗CPU;EnableEventValidation="false"則會回傳伺服器驗證,重新載入頁面.
  9. CausesValidation: 屬性規定當 Button 控制元件被點選時是否驗證頁面。
    當按鈕被點選時,預設執行頁面驗證。該屬性常用於當取消按鈕或重置按鈕被點選時阻止進行驗證。
  10. IsPostBack:是否是第一次被載入。IsPostBack只有在第一次開啟的時候是false,其它時候都是true。兩種情況所要顯示的按鈕是不一樣的。
  11. javascript:history.go(-1): 在修改完成後不採用頁面跳轉的方式,而是採用javascript:history.go(-1),這樣返回到了聯絡人管理頁面後再按返回鍵會直接跳轉到個人中心.同樣如果中間連續跳了兩個頁面,比如修改手機號,從個人資訊–>點選修改手機號–>驗證手機號密碼–>修改手機號–>跳轉回個人資訊,此時也不應使用頁面跳轉的方式,而是採用javascript:history.go(-2),這樣修改完手機號後返回到個人資訊,如果使用者再按返回鍵會直接跳轉到個人中心,而不是修改手機號頁面。
  12. SqlDataAdapter:SqlDataAdapter是 DataSet和 SQL Server之間的橋接器。SqlDataAdapter通過對資料來源使用適當的Transact-SQL語句對映 Fill(它可填充DataSet中的資料以匹配資料來源中的資料)和 Update(它可更改資料來源中的資料以匹配 DataSet中的資料)來提供這一橋接。當SqlDataAdapter填充 DataSet時,它為返回的資料建立必需的表和列(如果這些表和列尚不存在)。

all in all:sqlDataadapter的作用是實現Dataset和DB之間的橋樑:比如將對DataSet的修改更新到資料庫。

  1. DropDownList:建立下拉列表

頁面下的邏輯控制類

  1. DataSet:是不依賴於資料庫的獨立資料集合。
  2. DataBind::資料繫結就是將請求中的引數接收到處理器即控制器中。
    在這裡插入圖片描述
  3. [SqlParameter]:(https://www.cnblogs.com/angelfeather/articles/1225902.html)SqlParameter 建構函式 (String, SqlDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object, String, String, String)
    初始化 SqlParameter 類的一個新例項,該類使用引數名、引數的型別、引數的長度、方向、精度、小數位數、源列名稱、DataRowVersion 值之一、用於源列對映的布林值、SqlParameter 的值、此 XML 例項的架構集合所在的資料庫的名稱、此 XML 例項的架構集合所在的關係架構以及此引數的架構集合的名稱。

sqlParameter物件的作用是將要用於操作資料庫的資料(如根據ID查詢時要用到id)以引數的形式加入到sql語句中,防止因為拼接字串而引起的安全問題並且提高可讀性。所以使用是要先建立一個sqlParameter物件,在定義時或定義後(取決於建立時呼叫的哪一個建構函式)將資料繫結到引數。

SqlParameter[] prams = {
	data.MakeInParam("@name",  SqlDbType.VarChar,50,bookcasemanage.Name+"%"),
};

比較重要的功能就是連線字串啦!.能減少sql 注入的危險。所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。

  1. System.Web.UI.Page

在ASP.NET中,任何頁面都是繼承於System.Web.UI.Page,他提供了ASP.NET中的Response,Request,Session,Application的操作.在使用Visual Studio 建立ASP頁面時,系統會自動為你建立一個繼承與System.Web.UI.Page的類與頁面檔案關聯.

頁面存在的問題

  1. 更新圖書館資訊有問題:
    在這裡插入圖片描述

專案存在的問題:

  1. 書架上面的書籍無法獲取。