分享
 
 
 

亲密接触ASP.net(5)

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

现在是已经是凌晨2点了,没有办法,现在只有这个时间才可能有多余的时间来写这些文

章,希望我的这一系列文章能够帮助更多的人.我们这一节主要是要讲DataBind,这个在

ASP.net中是很重要的东东,几乎所有的控件都需要它来控制数据的操作。也可以说是AS

P.net的数据核心。

我们先来看一个简单的例子:

<% @ Page Language="C#" %>

<% @ Import Namespace="System.Data" %>

<Script Language="C#" Runat="Server">

public void Page_Load(Object src,EventArgs e)

{

//首先建立一个数组

ArrayList arr=new ArrayList();

arr.Add("飞刀");

arr.Add("Zsir");

arr.Add("大风");

arr.Add("布丁");

arr.Add("亚豪");

//将数组捆绑到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(),

那么整个页面都将被捆绑,所有的数据全在监视之下。下面的例子,我们将使用DataBin

d方法来捆绑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

OnClick="sub_Click" />

</form>

</body>

</html>

执行后,我们选择JSP技术我们点击"提交"按钮,看到情况是:

ASP技术 ASP.Net技术 JSP技术 PHP技术 组件技术

你现在选择的是:JSP技术区

我们看到,那个红色的[JSP技术],我们并没有使用什么控件,但是他却能正确的显示我

们的选择结果,这个是就捆绑的结果,注意<%# DDL.SelectedItem.Text %>这句话,正

是它让我们取得了捆绑的数据。它看上去是不是像我们熟悉的<%=...%>这个语句,它们

的使用方法相差不多,只是<%=...%>是在程序执行时调用,<%#... %>是在DataBind()方

法之后被调用。以后我们还能经常看到他的身影,呵呵。

接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox这些集合性质的控

件,而被捆绑的主要是ArrayList(数组),Hashtable(哈稀表),DataView(数据视图),Data

Reader这四个,以后我们就可以对号入座,不会出现DataTable被捆绑的错误了:)

讲到Bind,就不能说一下DataBinder.Eval()方法.

我们在使用DataBind,获得的数据,系统会将其默认为String(字符串),这对我们平时

的输出显示提供了极大的方便,但是我们并不是每次都需要string类型,有时我们就需

要Boolean,Int32这些类型。此时我们就需要转化类型了。可能大家最先想到的是String

.Format方法,这是最好的,但是用法过于烦。所以最好不要这样啦。我们可以用DataBi

nder.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;

//建立表数据

DataTable dt=new DataTable();

DataRow dr;

//建立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);

}

//捆绑

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控件,不然以后不知所云的:)

后面,我们将花几个节来谈一下,数据库的调用.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有