作者:飞刀 

这一节主要是要讲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)
{
//首先建立一个数组
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(),那么整个页面都将被捆绑,所有的数据全在监视之下。下面的例子,我们将使用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>

你现在选择的是:<font color=red><%# DDL.SelectedItem.Text %></font>区

<asp:Button id="sub" Text="提交" Type="submit" runat=server OnClick="sub_Click" />
</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;
//建立表数据
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,这是一个常犯的错误:)

DataBind数据核心相关推荐

  1. 2016年大数据核心产业规模达168亿

    近年来,大数据从概念落实到了应用层面,开始与各种行业融合,产业迎来蓬勃发展.无论是人脸识别.舆情监控.还是金融投资领域,大数据变得愈发重要.数据安全以及人工智能的未来发展一直是行业热议热议的话题. & ...

  2. 大数据核心内容是什么?它的实际应用是什么?

    大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理.换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的"加工能力" ...

  3. 从“交易核心”到“数据核心”,国产数据库要换道超车丨数据猿专访

    ‍ ‍数据智能产业创新服务媒体 --聚焦数智 · 改变商业 一直以来,数据库都被国外科技企业垄断,并与芯片.操作系统合称为我国科技产业的三大"心病".接下来几十年,都将是中国产业升 ...

  4. 机器学习实践:了解数据核心的通用方法!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:耿远昊,华东师范大学,Datawhale成员 我们常说数据和特征决 ...

  5. The Innovation | clusterProfiler:聚焦海量组学数据核心生物学意义

    导 读 clusterProfiler4.0同步支持最新版GO和KEGG数据,支持数千物种的功能分析,应对不同来源的基因功能注释(如cell markers, COVID-19等)提供了通用的分析方法 ...

  6. stm32 iic接口 进入busy_STM32通过IIC接口读取JY61模块MPU6050陀螺仪芯片数据核心程序...

    1 简述 最近,想学角度融合算法在网上买一个JY61的模块.他们家的模块用起来还不错.模块分为串口通讯和IIC通讯的.串口读取数据他们家有例程,我就不说了.想分享给大家这个模块的IIC是怎么去读取MP ...

  7. 35岁大数据行业从业者,如何培养大数据核心竞争力

    想转行来大数据行业的人,担心年龄的问题,在大数据行业中摸爬滚打的人,也担心瓶颈的问题,我个人以为,只要培训大数据的核心竞争力,才能让自己从人群中脱颖而出,也是为了让自己能得到一定的自由权,自由去选择心 ...

  8. 大数据核心框架Hadoop

    Hadoop两大核心框架HDFS与MapReduce的原理.发展情况.常见操作与行业应用 Hadoop简介 1.什么是Hadoop? Hadoop是一个由Apache基金会所开发的分布式系统基础架构, ...

  9. STM32读取MPU6050陀螺仪芯片数据核心程序

    1 简 介 最近,想学角度融合算法在网上买一个JY61的模块.他们家的模块用起来还不错.模块分为串口通讯和IIC通讯的.串口读取数据他们家有例程,我就不说了.想分享给大家这个模块的IIC是怎么去读取M ...

最新文章

  1. Mac下使用Wine安装Xshell 4和Xftp 4
  2. 从5随机到7随机及其扩展
  3. matlab 中fft的用法
  4. 坑爹的jquery ui datepicker
  5. [2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)
  6. linux iscsi软件,linux iscsi软件环境搭建
  7. 浏览器获取CA认证流程
  8. python 全部缩进一行_Python成为专业人士笔记–程序行空白及tab缩进的作用
  9. Mac OS 常用终端命令(附代码)
  10. 2022华为杯研究生数学建模竞赛E题思路解析
  11. Modbus通讯模拟环境的搭建(一) —— Modscan与Modsim的应用
  12. 游戏美术-魔兽世界查看器的正确使用方法
  13. SIM800L 模块 使用AT命令打电话
  14. Office 解决WORD转PDF未显示书签。
  15. Nginx 配置域名
  16. IP定位如何揪出SEM、百度竞价的“头号天敌——恶意点击”
  17. 港股通会成资金外流黑洞?伪逻辑不值一驳
  18. SQLServer集群故障节点DISCONNECTED
  19. 跟涛哥,写短句,不害你
  20. Socket:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作

热门文章

  1. dr优先级默认_当配置一个CISCO的路由器时,缺省的DR和BDR优先级是()。
  2. Linux进程通信中IPC对象——IPC_PRIVATE与ftok
  3. 为什么我的python程序编译器没有行代号_为什么我的python字典没有附加新变量呢?...
  4. python创建对象的格式为_Python入门基础学习(面向对象)
  5. mysqlorderby数字字符串排序_Python中的元组排序和深度比较
  6. 练习2:课工场响应式导航条_作业帮直播课APP下载最新版入口
  7. 【持续加精】几种强哥墙裂推荐的缓冲效果,各有千秋、各取所需
  8. 使用Vuforia Unity构建增强现实应用
  9. L1-027 出租 (C++暴力解法)
  10. swift - idfa(唯一标示/下载量/广告追踪)