ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题
最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据显示不是使用asp.net自带的数据显示控件进行数据的绑定,而是使用开源的数据表格插件DataTables。这样的显示效果要比DataGridView好看的多。下面将详细的过程记录如下,供初学者参考。
一、要将SQL Server数据库中的数据通过普通的table表格显示在页面上,首先是使用一个绑定数据的控件:Repeater 控件,在使用绑定表达式:<%#字段名称>。在后台使用DataBind方法。
具体事例代码:
前台:
<table id="tb_example" class="display cell-border hover dt-body-center row-border order-column ">
<thead>
<tr>
<th>公司名称</th>
<th>公司地点</th>
<th>注册资金</th>
<th>公司编号</th>
<th>公司代表</th>
</tr>
</thead>
<asp:Repeater ID="ratTable" runat="server">
<ItemTemplate>
<tr>
<td><%#Eval("PRONAME") %> </td>
<td><%#Eval("PROESS") %></td>
<td><%#Eval("PROMENOY") %></td>
<td><%#Eval("PROID") %></td>
<td><%#Eval("PROPERSON") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
后台:
string SqlStr = "Server=(local);User Id=sa;Pwd=123;DataBase=ZBD";//连接本地的SQL Server数据
SqlConnection conn = new SqlConnection(SqlStr); //实例化SQLConnection对象进行连接数据
string sqlstr = "select PRONAME,PROID,PROESS,PROMENOY,PROPERSON from tb_zbd ";//定义SQL查询语句用于查询表数据
SqlCommand myCmd = new SqlCommand(sqlstr, conn);
DataSet ds = new DataSet();//定义dataset对象
conn.Open();//打开数据库
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
conn.Close();
da.Fill(ds);
ratTable.DataSource = ds.Tables[];
ratTable.DataBind();
代码说明:上述代码定义了DataAdapter对象。DataAdapter对象是DataSet对象和数据源之间联系的桥梁,主要是从数据源中检索数据、填充DataSet对象中的表或者把用户对DataSet对象做出的更改写入到数据源。
运行操作的显示结果如下图:
二、数据绑定的相关知识点总结
数据绑定是指从数据源获取数据向数据源写入数据。简单的数据绑定可以使对变量或属性的绑定,比较复杂的是对ASP.NET数据绑定控件的操作。
说明:所有的数据绑定表示式都必须包含在<%#...%>中。执行绑定操作要么执行Page对象的DataBind方法,要么执行数据绑定控件对应的实例对象的DataBind方法。
1、简单的属性绑定
基于属性的绑定所涉及的属性必须包含get访问器,因为在数据绑定过程中,数据显示控件需要通过属性的get访问器从属性中读取数据。
语法:<%# 属性名称%>
在后台执行Page.DataBind()方法。
技巧:简单变量的数据绑定类似于简单的属性绑定。例如定义一个公共的变量并赋值,在前台的label控件额Text属性中使用数据语法<%#,,,%>也可以进行绑定。
2、表达式绑定
将数据绑定显示控件之前,对数据的处理,通过表示式将执行的结果显示在控件之上。
3、集合绑定
像一些比较特殊的数据控件需要以数据集合作为数据源进行数据的绑定。
4、技巧总结:对于数据控件的绑定,是在数据绑定表达式中使用Eval和Bind方法进行数据绑定。其中二者的区别;
<%#Eval("数据字段名称")%>这种方法是单向绑定,只具有读取功能。
<%#Bind("数据字段名称")%>这种方法是双向的,同时具有读取和写入的功能。
ASP.NET中后台数据和前台控件的绑定的更多相关文章
- asp.net中遍历界面上所有控件进行属性设置
* 使用方法: * 前台页面调用方法,重置: protected void Reset_Click(object sender, EventArgs e) { ...
- asp.net中的时间日期选择控件
asp.net中的时间日期选择控件 Posted on 2008-07-17 17:37 飛雪飄寒 阅读(22922) 评论(6) 编辑 收藏 在系统中经常需要进行时间日期选择(比如查询时间范 ...
- c# 后台线程 访问前台控件并显示信息
//设置为后台线程 Thread th = new Thread(delegate() { append(); }); th.IsBackground = true; th.Start(); //在a ...
- ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定
在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...
- ASP.NET中的Image和ImageButton控件
Image 控件用来显示图形.Image 控件可以显示来自位图.图标或元文件的图形,也可以显示增强的元文件.JPEG 或 GIF文件. ImageButton 控件用于显示可点击的图像. Image ...
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- 在 ASP.NET 中创建数据访问和业务逻辑层(转)
.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...
- ASP.Net中后台控制页面提示信息的显示方式
ASP.Net中后台控制页面提示信息的显示方式 用于删除或修改成功后的显示:(背景No空白) ScriptManager.RegisterStartupScript(this, typeof(Pa ...
- ASP.NET MVC中加载WebForms用户控件(.ascx)
原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControl ...
随机推荐
- Oracle 10g安装教程
首先下载安装文件,打开后文件结构如图所示: 安装之前请关闭Windows防火墙并断开网络. xp系统下直接双击运行(本经验以XP系统安装为例进行讲述). 如果是在win7上安装,如图:在setup文件 ...
- Oracle 用Drapper进行like模糊传参查询需要在参数值前后带%符合
Oracle 用Drapper进行like模糊传参查询需要在参数值前后带%符合 string sqlstr="select * from tblname where name like ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- Flexbox 自由的布局
css3提出了一种新的布局方式.她并没有以摧枯拉朽之势博得我的喜爱.我和她的故事总是伴随着苦涩的味道.世道变了,总要做出些选择才能跟紧步伐.她很强大,能满足你天马行空的需求而不必抓掉一大把头发.她却很 ...
- ASP.NET Web API 控制器创建过程(二)
ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...
- ABP源码分析三十一:ABP.AutoMapper
这个模块封装了Automapper,使其更易于使用. 下图描述了改模块涉及的所有类之间的关系. AutoMapAttribute,AutoMapFromAttribute和AutoMapToAttri ...
- python获取ip代理列表爬虫
最近练习写爬虫,本来爬几张mm图做测试,可是爬到几十张的时候就会返回403错误,这是被网站服务器发现了,把我给屏蔽了. 因此需要使用代理IP.为了方便以后使用,我打算先写一个自动爬取ip代理的爬虫,正 ...
- 浅析Java 泛型
泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...
- 页面width与height使用百分比来划分不起作用解决办法--记录六
有时候你写 <div style="width:80%;height:100%;border:1px solid red"></div> <div s ...
- .NET中的逆变协变
MSDN上的说法: 协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型----------(注 ...