DataBind数据核心
作者:飞刀
这一节主要是要讲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数据核心相关推荐
- 2016年大数据核心产业规模达168亿
近年来,大数据从概念落实到了应用层面,开始与各种行业融合,产业迎来蓬勃发展.无论是人脸识别.舆情监控.还是金融投资领域,大数据变得愈发重要.数据安全以及人工智能的未来发展一直是行业热议热议的话题. & ...
- 大数据核心内容是什么?它的实际应用是什么?
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理.换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的"加工能力" ...
- 从“交易核心”到“数据核心”,国产数据库要换道超车丨数据猿专访
数据智能产业创新服务媒体 --聚焦数智 · 改变商业 一直以来,数据库都被国外科技企业垄断,并与芯片.操作系统合称为我国科技产业的三大"心病".接下来几十年,都将是中国产业升 ...
- 机器学习实践:了解数据核心的通用方法!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:耿远昊,华东师范大学,Datawhale成员 我们常说数据和特征决 ...
- The Innovation | clusterProfiler:聚焦海量组学数据核心生物学意义
导 读 clusterProfiler4.0同步支持最新版GO和KEGG数据,支持数千物种的功能分析,应对不同来源的基因功能注释(如cell markers, COVID-19等)提供了通用的分析方法 ...
- stm32 iic接口 进入busy_STM32通过IIC接口读取JY61模块MPU6050陀螺仪芯片数据核心程序...
1 简述 最近,想学角度融合算法在网上买一个JY61的模块.他们家的模块用起来还不错.模块分为串口通讯和IIC通讯的.串口读取数据他们家有例程,我就不说了.想分享给大家这个模块的IIC是怎么去读取MP ...
- 35岁大数据行业从业者,如何培养大数据核心竞争力
想转行来大数据行业的人,担心年龄的问题,在大数据行业中摸爬滚打的人,也担心瓶颈的问题,我个人以为,只要培训大数据的核心竞争力,才能让自己从人群中脱颖而出,也是为了让自己能得到一定的自由权,自由去选择心 ...
- 大数据核心框架Hadoop
Hadoop两大核心框架HDFS与MapReduce的原理.发展情况.常见操作与行业应用 Hadoop简介 1.什么是Hadoop? Hadoop是一个由Apache基金会所开发的分布式系统基础架构, ...
- STM32读取MPU6050陀螺仪芯片数据核心程序
1 简 介 最近,想学角度融合算法在网上买一个JY61的模块.他们家的模块用起来还不错.模块分为串口通讯和IIC通讯的.串口读取数据他们家有例程,我就不说了.想分享给大家这个模块的IIC是怎么去读取M ...
最新文章
- Mac下使用Wine安装Xshell 4和Xftp 4
- 从5随机到7随机及其扩展
- matlab 中fft的用法
- 坑爹的jquery ui datepicker
- [2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)
- linux iscsi软件,linux iscsi软件环境搭建
- 浏览器获取CA认证流程
- python 全部缩进一行_Python成为专业人士笔记–程序行空白及tab缩进的作用
- Mac OS 常用终端命令(附代码)
- 2022华为杯研究生数学建模竞赛E题思路解析
- Modbus通讯模拟环境的搭建(一) —— Modscan与Modsim的应用
- 游戏美术-魔兽世界查看器的正确使用方法
- SIM800L 模块 使用AT命令打电话
- Office 解决WORD转PDF未显示书签。
- Nginx 配置域名
- IP定位如何揪出SEM、百度竞价的“头号天敌——恶意点击”
- 港股通会成资金外流黑洞?伪逻辑不值一驳
- SQLServer集群故障节点DISCONNECTED
- 跟涛哥,写短句,不害你
- Socket:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
热门文章
- dr优先级默认_当配置一个CISCO的路由器时,缺省的DR和BDR优先级是()。
- Linux进程通信中IPC对象——IPC_PRIVATE与ftok
- 为什么我的python程序编译器没有行代号_为什么我的python字典没有附加新变量呢?...
- python创建对象的格式为_Python入门基础学习(面向对象)
- mysqlorderby数字字符串排序_Python中的元组排序和深度比较
- 练习2:课工场响应式导航条_作业帮直播课APP下载最新版入口
- 【持续加精】几种强哥墙裂推荐的缓冲效果,各有千秋、各取所需
- 使用Vuforia Unity构建增强现实应用
- L1-027 出租 (C++暴力解法)
- swift - idfa(唯一标示/下载量/广告追踪)