親密接觸ASP.Net(5) DataBind資料核心

來源:互聯網
上載者:User

這一節主要是要講DataBind,這個在ASP.net中是很重要的東東,幾乎所有的控制項都需要它來控制資料的操作。也可以說是ASP.net的資料核心。 我們先來看一個簡單的例子:

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
file://首先建立一個數組
ArrayList arr=new ArrayList();
arr.Add("飛刀");
arr.Add("Zsir");
arr.Add("大風");
arr.Add("布丁");
arr.Add("亞豪");

file://將數組捆綁到DropDownList控制項上去
DDL.DataSource = arr;
DDL.DataBind();
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<asp:DropDownList id="DDL" runat="server" />
</body>
</html>

最後的顯示為:

 飛刀 Zsir 大風 布丁 亞豪

我們在代碼中可以看到我們建立了一個DropDownList,但是他沒有<asp:ListItem>屬性,而我們從最後的顯示中依然可以看到我們所列出的選項。

這裡就是我們用DataBind的結果,在Page_Load方法中我們建立了一個數組(ArrayList),並通過DataBind方法將這個數組捆綁到了DropDownList控制項中,使得DropDownList最後有資料顯示:),怎麼樣對Bind有一定感性認識了吧。下面我們開始正式講解

其實DataBind(),不僅能對控制項進行捆綁,而且還能夠對頁面中屬性,方法進行捆綁,甚至整個頁面都可以捆綁。比如,調用Page.DataBind()方法或者直接使用DataBind(),那麼整個頁面都將被捆綁,所有的資料全在監視之下。下面的例子,我們將使用DataBind方法來捆綁DropDownList,並獲得其中的資料

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void sub_Click(Object sender,EventArgs e)
{
Page.DataBind();
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat=server>
<asp:DropDownList id="DDL" runat="server" >
<asp:ListItem>ASP技術</asp:ListItem>
<asp:ListItem selected>ASP.Net技術</asp:ListItem>
<asp:ListItem>JSP技術</asp:ListItem>
<asp:ListItem>PHP技術</asp:ListItem>
<asp:ListItem>組件技術</asp:ListItem>
</asp:DropDownList>
<br>
你現在選擇的是:<font color=red><%# DDL.SelectedItem.Text %></font>區
<br>
<asp:Button id="sub" Text="提交" Type="submit" runat=server />
</form>
</body>
</html>

執行後,我們選擇JSP技術我們點擊"提交"按鈕,看到情況是:


ASP技術 ASP.Net技術 selected>JSP技術 PHP技術 組件技術


你現在選擇的是:JSP技術區

我們看到,那個紅色的[JSP技術],我們並沒有使用什麼控制項,但是他卻能正確的顯示我們的選擇結果,這個是就捆綁的結果,注意<%# DDL.SelectedItem.Text %>這句話,正是它讓我們取得了捆綁的資料。它看上去是不是像我們熟悉的<%=...%>這個語句,它們的使用方法相差不多,只是<%=...%>是在程式執行時調用,<%#... %>是在DataBind()方法之後被調用。以後我們還能經常看到他的身影,呵呵。 接收Bind的控制項,一般有DropDownList,DataList,DataGrid,ListBox這些集合性質的控制項,而被捆綁的主要是ArrayList(數組),Hashtable(哈稀表),DataView(資料檢視),DataReader這四個,以後我們就可以對號入座,不會出現DataTable被捆綁的錯誤了:)

講到Bind,就不能說一下DataBinder.Eval()方法.

我們在使用DataBind,獲得的資料,系統會將其預設為String(字串),這對我們平時的輸出顯示提供了極大的方便,但是我們並不是每次都需要string類型,有時我們就需要Boolean,Int32這些類型。此時我們就需要轉化類型了。可能大家最先想到的是String.Format方法,這是最好的,但是用法過於煩。所以最好不要這樣啦。我們可以用DataBinder.Eval()方法,他的格式是:

DataBinder.Eval(Container.DataItem,"轉換的類型","格式")

最後一個"格式"是可選的,一般不用去管他,Container.DataItem是捆綁的資料項目,"轉換類型"指的是Integer,String,Boolean這一類東西.

有了它,我們處理資料就更加方便

最後我們來看一個例子,關於DataView的捆綁,呵呵,老是用DropDownList煩了,這次用DataGrid,在這個例子中我們可以看到"表是怎樣煉成的"

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
int i;
file://建立表資料
DataTable dt=new DataTable();
DataRow dr;
file://建立Column例,可以指明例的類型,這裡用的是預設的string
dt.Columns.Add(new DataColumn("編號"));
dt.Columns.Add(new DataColumn("使用者名稱"));
for(i=1;i<8;i++)
{
dr=dt.NewRow();
dr[0]=Int32.ToString(i);
dr[1]="aspcn"+Int32.ToString(i);
dt.Rows.Add(dr);
}
file://捆
DG1.DataSource = new DataView(dt);
DG1.DataBind();
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<asp:DataGrid id="DG1" runat=server align=center HeaderStyle-BackColor="#aaaadd" />

</body>
</html>

我們見到的情況是:

編號 使用者名稱
 1 aspcn1
 2 aspcn2
 3 aspcn3
 4 aspcn4
 5 aspcn5
 6 aspcn6
 7 aspcn7

關於這個程式我就不多說了,程式中有說明,只是要注意我們這裡bind的是DataView,不是DataTable,這是一個常犯的錯誤:)

到這裡我們的基礎講完了,大家要多多去熟悉一下Web控制項,不然以後不知所云的:)

後面,我們將花幾個節來談一下,資料庫的調用.



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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