ASP.NET基礎知識(二)

來源:互聯網
上載者:User
RadioButton控制項會在用戶端渲染成<input type="radio" />,和服務端控制項一樣,也可以通過GroupName屬性盡心分組。

Button控制項會在用戶端渲染成<input type="submit" />

LinkButton控制項會在用戶端渲染成<a href="javascript:__doPostBack" />

ImageButton控制項是一個可以設定ImageUrl的Button,它會在用戶端渲染成<input type="image" />
相同點 :都可以把OnClientClick屬性設定為"return confirm('確定要刪除嗎?')";

Panel控制項會在用戶端渲染成DIV,如果設定了它的GroupingText屬性,則會渲染成<fieldset><legend>這樣設定</legend></fieldset>,也就是GroupBox的效果。

Hyperlink控制項會在用戶端渲染成<a />標記。
可以設定屬性NavigateUrl=""和Target="",若設定ImageUrl屬性,則會渲染成<a href=""><image /></a>.

FileUpload控制項會在用戶端渲染成<input type="file">.
一般上傳檔案的代碼這樣寫
if(FileUpload1.hasFile())
{
string uploadPath = Server.MapPath("~/upload/");
FileUpload1.SaveAs(uploadPath + FileUpload1.FileName);
}

總的來說,控制項共分為三種:
1)HTML控制項
2)ASP.NET服務端控制項
3)有runat="server"的HTML控制項

驗證控制項
1)RequireFieldValidator:必要欄位,可進行服務端的非空校正,常用屬性有:ErrorMessage, ControlToValidate , InitialValue . 在服務端驗證時可以這樣寫if(this.IsValide){…}
2)RangeValidator:判斷值是否在給定的最大值(MaximumValue)和最小值(MinimumValue)之間,可比較的資料類型有string, int , currency.
3)CompareValidator:用於比較兩個值的關係是否滿足要求的或者指定類型的資料。比較操作符有:<,>,=,!= .常用屬性:ValueToCompare :與哪個值比較,ControlToCompare :與哪一個控制項進行比較。
4)RegularExpressionValidator:用於驗證資料滿足的Regex。常用屬性:ValidationExpression :定義Regex。
5)CustomValidator:用於特殊情況的自訂驗證。
6)注意 :(1)幾乎所有的驗證控制項都得在用戶端和服務端進行校正。
(2)給驗證控制項進行分組:ValidationGroup
(3)是否觸發校正事件:CauseValidation:false,表示不觸發驗證事件
(4)修改驗證控制項是否佔位:Display設定成Dynamic或者Static.

資料繫結
1)例如:<ItemTemplate><%#Eval ("Id")%></ ItemTemplate >
2)Repeater資料控制項用於綁定資料的遍曆顯示,當然,我們也可以用foreach語句手寫。
3)Repeater控制項的其它模板
(1)<AlternatingItemTemplate>設定隔行的不同風格,也就是偶數行的風格。
(2)<HeadTemplate>和<FootTemplate>頭部尾部的模板,分別顯示在資料的前面和後面,比如可防 止<table></table>或者<ul></ul>等。
(3)<SeperatorTemplate>,兩項資料之間的分隔字元。

資料庫中只存放圖片的路徑,ResolveClientUrl("~/images/ + url");

放在<ItemTemplate>模板中的控制項無法直接在後台c#代碼中操作,得先通過ID找到控制項,如:e.Item.FindControl("txtName");

Repeater控制項一般只用來展示資料,而ListView控制項用來實現增刪改產操作更方便一些。

Eval()是單向綁定,用於讀取資料庫中的資料;Bind()是雙向繫結,即能把資料庫中的值讀到頁面上,也能把使用者的值傳到資料庫中。

ListView控制項的注意事項:
(1)自動產生的樣式要提煉到css樣式中,不要做成內聯式的;
(2)<ItemTemplate>裡面一般沒必要用<asp:Label>控制項展示唯讀資料,直接輸出就可以。
(3)<LayoutTemplate>中必須有一個id為itemPlaceHolder的服務端控制項。將表頭自動產生的英文欄位改成漢語,沒用的ID要刪除,沒必要展示出來。

在ItemDataBound事件中應注意:
(1)判斷資料行的類型 e.Item.ItemType == ListViewItemType.DataRow
(2) 取得對應的RowView ListViewDataItem lvDataItem = (ListViewDataItem)e.Item; DataRowView rowView = (DataRowView)lvDataItem.DataItem;
(3)在用FindControl時應注意 AlternatingItemTemplate問題。

ListView和GridView的區別
(1)GridView只能渲染成Table
(2)ListView既能渲染成Table,也能渲染成<ul><li>

DropDownList控制項綁定SelectedValue屬性,如:SelectedValue="<%#Eval('txtName')%>"

如果在頁面前端不涉及增刪改查等互動資訊的純展示頁面,可以禁用ViewState,有兩種方法:
(1)頁面整體禁用ViewState:在頂部<page>標籤內加EnabelViewState="false"
(2)對指定控制項禁用ViewState:在該控制項的屬性上添加EnabelViewState="false"

網站效能調優
(1)緩衝Cache是網站效能調優的第一個手段;
(2)索引Index是資料庫效能調優的第一個手段;

設定頁面緩衝的方法:在頁面頭部地區<page>中設定<%@ OutputCache Duration="20" VaryByParam="none"(這項是可變的,可設定為參數:id;num;age等)%>

資料緩衝的設定方法,針對ObjectDataSource設定屬性,
(1)EnableCaching="True"
(2)CacheDuration="20"

寫在後邊:魯迅先生有句話"哪裡有天才?我是把別人喝咖啡的功夫都用在工作和學習上的!"非常贊同,勤能補拙是良訓。好了,今天就到這裡吧!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.