明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

親密接觸ASP.Net(5)

[摘要]我們這一節(jié)主要是要講DataBind,這個在ASP.net中是很重要的東東,幾乎所有的控件都需要它來控制數(shù)據(jù)的操作。也可以說是ASP.net的數(shù)據(jù)核心。我們先來看一個簡單的例子:<% @ Page Language="C#" %><% @ Import Nam...
我們這一節(jié)主要是要講DataBind,這個在ASP.net中是很重要的東東,幾乎所有的控件都需要它來控制數(shù)據(jù)的操作。也可以說是ASP.net的數(shù)據(jù)核心。

我們先來看一個簡單的例子:

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

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

最后的顯示為:

   飛刀 Zsir 大風(fēng) 布丁 亞豪

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

這里就是我們用DataBind的結(jié)果,在Page_Load方法中我們建立了一個數(shù)組(ArrayList),并通過DataBind方法將這個數(shù)組捆綁到了DropDownList控件中,使得DropDownList最后有數(shù)據(jù)顯示:),怎么樣對Bind有一定感性認(rèn)識了吧。下面我們開始正式講解

其實DataBind(),不僅能對控件進(jìn)行捆綁,而且還能夠?qū)撁嬷袑傩,方法進(jìn)行捆綁,甚至整個頁面都可以捆綁。比如,調(diào)用Page.DataBind()方法或者直接使用DataBind(),那么整個頁面都將被捆綁,所有的數(shù)據(jù)全在監(jiān)視之下。下面的例子,我們將使用DataBind方法來捆綁DropDownList,并獲得其中的數(shù)據(jù)

<% @ 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技術(shù)</asp:ListItem>
  <asp:ListItem selected>ASP.Net技術(shù)</asp:ListItem>
  <asp:ListItem>JSP技術(shù)</asp:ListItem>
  <asp:ListItem>PHP技術(shù)</asp:ListItem>
  <asp:ListItem>組件技術(shù)</asp:ListItem>
  </asp:DropDownList>
<br>
你現(xiàn)在選擇的是:<font color=red><%# DDL.SelectedItem.Text %></font>區(qū)
<br>
<asp:Button id="sub" Text="提交" Type="submit" runat=server OnClick="sub_Click" />
</form>
</body>
</html>

執(zhí)行后,我們選擇JSP技術(shù)我們點擊"提交"按鈕,看到情況是:

  ASP技術(shù) ASP.Net技術(shù) JSP技術(shù) PHP技術(shù) 組件技術(shù)
你現(xiàn)在選擇的是:JSP技術(shù)區(qū)






我們看到,那個紅色的[JSP技術(shù)],我們并沒有使用什么控件,但是他卻能正確的顯示我們的選擇結(jié)果,這個是就捆綁的結(jié)果,注意<%# DDL.SelectedItem.Text %>這句話,正是它讓我們?nèi)〉昧死壍臄?shù)據(jù)。它看上去是不是像我們熟悉的<%=...%>這個語句,它們的使用方法相差不多,只是<%=...%>是在程序執(zhí)行時調(diào)用,<%#... %>是在DataBind()方法之后被調(diào)用。以后我們還能經(jīng)?吹剿纳碛,呵呵。

接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox這些集合性質(zhì)的控件,而被捆綁的主要是ArrayList(數(shù)組),Hashtable(哈稀表),DataView(數(shù)據(jù)視圖),DataReader這四個,以后我們就可以對號入座,不會出現(xiàn)DataTable被捆綁的錯誤了:)

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

我們在使用DataBind,獲得的數(shù)據(jù),系統(tǒng)會將其默認(rèn)為String(字符串),這對我們平時的輸出顯示提供了極大的方便,但是我們并不是每次都需要string類型,有時我們就需要Boolean,Int32這些類型。此時我們就需要轉(zhuǎn)化類型了。可能大家最先想到的是String.Format方法,這是最好的,但是用法過于煩。所以最好不要這樣啦。我們可以用DataBinder.Eval()方法,他的格式是:

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

最后一個"格式"是可選的,一般不用去管他,Container.DataItem是捆綁的數(shù)據(jù)項,"轉(zhuǎn)換類型"指的是Integer,String,Boolean這一類東西.

有了它,我們處理數(shù)據(jù)就更加方便

最后我們來看一個例子,關(guān)于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;
//建立表數(shù)據(jù)
DataTable dt=new DataTable();
DataRow dr;
//建立Column例,可以指明例的類型,這里用的是默認(rèn)的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);
}
//捆綁
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  


關(guān)于這個程序我就不多說了,程序中有說明,只是要注意我們這里bind的是DataView,不是DataTable,這是一個常犯的錯誤:)

到這里我們的基礎(chǔ)講完了,大家要多多去熟悉一下Web控件,不然以后不知所云的:)

后面,我們將花幾個節(jié)來談一下,數(shù)據(jù)庫的調(diào)用.





標(biāo)簽:親密接觸ASP.Net(5) 

相關(guān)文章