教你看懂C#web頁面
阿新 • • 發佈:2019-01-06
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"> </td>
<td height="253" valign="bottom" bgcolor="#65D7D4"> </td>
<td rowspan="5" bgcolor="#DDDDDD"> </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"> </td>
<td width="65"> </td>
<td colspan="3"> </td>
</tr>
<tr>
<td height="26"> </td>
<td><span class="daohang1">使用者登入:
</span>
<label></label></td>
<td colspan="3"><label>
<asp:TextBox ID="txtAdmin" runat="server"></asp:TextBox>
</label></td>
</tr>
<tr>
<td height="22"> </td>
<td class="daohang1">使用者密碼:</td>
<td colspan="3"><label>
<asp:TextBox ID="txtPwd" runat="server" Width="148px" TextMode="Password"></asp:TextBox>
</label></td>
</tr>
<tr>
<td height="31"> </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"/>
</label></td></tr>
<tr>
<td height="27"> </td>
<td> </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"> </td>
</tr>
<tr>
<td height="66" background="images/index_14.gif"> </td>
</tr>
<tr>
<td colspan="3" bgcolor="#DDDDDD"> </td>
</tr>
</table>
</div>
</body>
</html>
- AutoEventWireup: 如果Page指令的AutoEventWireup屬性被設定為 true(或者如果缺少此屬性,因為它預設為true),該``頁框架將自動呼叫頁事件,即Page_Init 和 Page_Load方法。在這種情況下,不需要任何顯式的Handles子句或委託。
- Inherits:inherits是定義供應用程式類繼承的程式碼隱藏類。
- runat:runat="server"直接回交伺服器,處理資料.
- nbsp:它叫不換行空格,全稱No-Break Space,它是最常見和我們使用最多的空格,大多數的人可能只接觸了 ,它是按下space鍵產生的空格。在HTML中,如果你用空格鍵產生此空格,空格是不會累加的(只算1個)。要使用html實體表示才可累加,該空格佔據寬度受字型影響明顯而強烈。
不換行空格和常規空格的區別包括:它不允許斷行;另外因為它不常規,所以它一般不會被當作普通空格合併。
不換行空格本來應該用在文字中需要避免斷行的地方,比如數值的數字和單位之間(比如「100 千米」不應該在中間換行)。
- TextMode:TextMode 屬性用於設定或返回 TextBox 控制元件的行為模式。
- span: 標籤被用來組合文件中的行內元素。
- colspan:colspan 屬性規定單元格可橫跨的列數。
- MasterPageFile:MasterPageFile其實是定義一個了外圍的框架的頁面,並且在裡面設定了具體內容存放的位置
- ContentPlaceHolder:用來對應包含與當前內容關聯的 ContentPlaceHolder 的 ID啊
說白了就是去找母版頁相應的ContentPlaceHolder ,然後把內容扔進那裡面去 - GridView:它可以非常快速的將資料以表格方式顯示在web頁面上。下面就是一個利用GridView控制元件進行資料繫結的小例子.
- colspan:colspan 屬性規定單元格可橫跨的列數
- EnableEventValidation:EnableEventValidation="true"則會在本地驗證,消耗CPU;EnableEventValidation="false"則會回傳伺服器驗證,重新載入頁面.
- CausesValidation: 屬性規定當 Button 控制元件被點選時是否驗證頁面。
當按鈕被點選時,預設執行頁面驗證。該屬性常用於當取消按鈕或重置按鈕被點選時阻止進行驗證。 - IsPostBack:是否是第一次被載入。IsPostBack只有在第一次開啟的時候是false,其它時候都是true。兩種情況所要顯示的按鈕是不一樣的。
- javascript:history.go(-1): 在修改完成後不採用頁面跳轉的方式,而是採用javascript:history.go(-1),這樣返回到了聯絡人管理頁面後再按返回鍵會直接跳轉到個人中心.同樣如果中間連續跳了兩個頁面,比如修改手機號,從個人資訊–>點選修改手機號–>驗證手機號密碼–>修改手機號–>跳轉回個人資訊,此時也不應使用頁面跳轉的方式,而是採用javascript:history.go(-2),這樣修改完手機號後返回到個人資訊,如果使用者再按返回鍵會直接跳轉到個人中心,而不是修改手機號頁面。
- SqlDataAdapter:SqlDataAdapter是 DataSet和 SQL Server之間的橋接器。SqlDataAdapter通過對資料來源使用適當的Transact-SQL語句對映 Fill(它可填充DataSet中的資料以匹配資料來源中的資料)和 Update(它可更改資料來源中的資料以匹配 DataSet中的資料)來提供這一橋接。當SqlDataAdapter填充 DataSet時,它為返回的資料建立必需的表和列(如果這些表和列尚不存在)。
all in all:sqlDataadapter的作用是實現Dataset和DB之間的橋樑:比如將對DataSet的修改更新到資料庫。
- DropDownList:建立下拉列表
頁面下的邏輯控制類
- DataSet:是不依賴於資料庫的獨立資料集合。
- DataBind::資料繫結就是將請求中的引數接收到處理器即控制器中。
- [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命令。
- System.Web.UI.Page:
在ASP.NET中,任何頁面都是繼承於System.Web.UI.Page,他提供了ASP.NET中的Response,Request,Session,Application的操作.在使用Visual Studio 建立ASP頁面時,系統會自動為你建立一個繼承與System.Web.UI.Page的類與頁面檔案關聯.
頁面存在的問題
- 更新圖書館資訊有問題:
專案存在的問題:
- 書架上面的書籍無法獲取。