Asp.Net中的資料來源概述與配置及執行個體代碼

來源:互聯網
上載者:User

資料來源

資料繫結分為資料來源和資料繫結控制項兩部分,資料繫結控制項通過資料來源來獲得資料,通過資料來源來隔離資料提供者和資料使用者,資料繫結控制項通過資料來源來對資料進行修改,資料來源有SqlDataSource、AccessDataSource、ObjectDataSource、LinqDataSource、EntityDataSource、XmlDataSource等

ObjectDataSourceWeb開發中應用最廣的資料來源,做為主要介紹

資料繫結控制項

資料繫結控制項有列表資料繫結控制項(DropDownList、RadioButtonList、ListBox、CheckBoxList、BulletedList等)和複雜控制項(DataGrid、GridView、DetailsView、FormView、ListView、Repeater、DataList等,GridView等都是ListView子集)。Repeater是最輕量級的組件,在互連網的前台用的最多,ListView是GridView、DetailsView、FormView、Repeater、DataList等這些控制項的大一統者,所以資料繫結控制項主要介紹Repeater和ListView

ObjectDataSource

ObjectDataSource用來將一個類做為資料來源,TypeName屬性為資料來源類的全名,有DeleteMethod(刪除方法)、InsertMethod(新增方法)、SelectMethod(查詢方法)、UpdateMethod(修改方法)等幾個屬性,分別為類中刪除、插入、查詢、更新資料的方法名,這些方法可能有參數,參數的值是通過DeleteParameters、UpdateParameters、InsertParameters等嵌套節點設定的。

ObjectDataSource訪問自己寫的普通類,在類上標註[DataObject] DataObjectMethod

通常手工編寫ObjectDataSource太麻煩,微軟比較貼心,我們可以通過可視化介面來完成。將ObjectDataSource拖放到介面上,在右上方的智能標誌上選擇“配置資料來源”即可進行配置。資料來源類一般TypeNameAdapter類,選中類,選擇【下一步】,分別選擇對應的獲得、刪除、更新、插入資料的方法

圖解:

1、從工具箱=》資料=》ObjectDataSources拖入ObjectDataSourcesControl.aspx介面中

2、點擊控制項右上方箭頭“配置資料來源”彈出對話方塊選擇業務對象 即資料來源需要調用到的業務層方法 比如班級業務對象 BLL.Classes 下一步

3、可以分別選擇增刪改查調用的業務層方法 比如查詢所有未刪除班級 getAllClasses(Boolean isDel)帶有參數是否刪除下一步對參數進行設定

4、設定isDel的預設值為false

5、至此資料來源即配置完成

6、介面中拖入DropDownList資料控制項 同樣點擊右上方=》選擇資料來源為上述ObjectDataSources1

運行結果

補充:

Q:我第一訪問該頁面的時候下拉框載入出資料 如果第二次我發送資料請求時不調用getAllClasses方法 頁面下拉框還會顯示資料嗎?

代碼解答

前台頁面簡單控制項

複製代碼 代碼如下:<asp : DropDownList ID ="DropDownList1" runat ="server">
</asp : DropDownList>
<input type="submit" value="再次請求" />

後台頁面代碼
複製代碼 代碼如下:public partial class ObjectDataSourcesControl : System.Web.UI.Page {
protected void Page_Load( object sender, EventArgs e) {
//由於資料繫結控制項預設會將資料儲存在ViewState中,因此不會每次重新整理頁面都會重新載入資料,只有第一次需要載入(!IsPostBack)
if (!IsPostBack) {
List <MODEL.Classes > lists = new BLL.Classes ().getAllClasses(false );
//用代碼綁定可以將任何實現了IEnumerable介面的對象綁定到資料繫結控制項。比如:
//DropDownList1.DataSource = new object[] { 3, 5, 6 };
//DropDownList1.DataBind();
DropDownList1.DataTextField = "CName" ;
DropDownList1.DataValueField = "CID" ;
DropDownList1.DataSource = lists;
DropDownList1.DataBind();
}
}
}

當點擊"再次請求時" 後台頁面判斷ispostback=false不會再次getAllClasses 那為什麼頁面下拉框中仍然有值呢?

A:因為伺服器返回的頁面中包含__VIEWSTATE 在頁面生命週期PageLoad之前執行的LoadState就是將用戶端提交的__VIEWSTATE儲存的控制項屬性與值還原到頁面控制項中 如下頁面源檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.