欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.Net中的数据源概述与配置及实例代码

程序员文章站 2024-03-04 21:18:18
数据源 数据绑定分为数据源和数据绑定控件两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据绑定控件通过数据源来对数据进行修改,数据源有...

数据源

数据绑定分为数据源和数据绑定控件两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据绑定控件通过数据源来对数据进行修改,数据源有sqldatasource、accessdatasource、objectdatasource、linqdatasource、entitydatasource、xmldatasource等

objectdatasourceweb开发中应用最广的数据源,做为主要介绍

数据绑定控件

数据绑定控件有列表数据绑定控件(dropdownlist、radiobuttonlist、listbox、checkboxlist、bulletedlist等)和复杂控件(datagrid、gridview、detailsview、formview、listview、repeater、datalist等,gridview等都是listview子集)。repeater是最轻量级的组件,在互联网的前台用的最多,listview是gridview、detailsview、formview、repeater、datalist等这些控件的大一统者,所以数据绑定控件主要介绍repeater和listview

objectdatasource

objectdatasource用来将一个类做为数据源,typename属性为数据源类的全名,有deletemethod(删除方法)、insertmethod(新增方法)、selectmethod(查询方法)、updatemethod(修改方法)等几个属性,分别为类中删除、插入、查询、更新数据的方法名,这些方法可能有参数,参数的值是通过deleteparameters、updateparameters、insertparameters等嵌套节点设置的。

objectdatasource访问自己写的普通类,在类上标注[dataobject] dataobjectmethod

通常手工编写objectdatasource太麻烦,微软比较贴心,我们可以通过可视化界面来完成。将objectdatasource拖放到界面上,在右上角的智能标志上选择“配置数据源”即可进行配置。数据源类一般typenameadapter类,选中类,选择【下一步】,分别选择对应的获得、删除、更新、插入数据的方法

图解:

1、从工具箱=》数据=》objectdatasources拖入objectdatasourcescontrol.aspx界面中

Asp.Net中的数据源概述与配置及实例代码

2、点击控件右上角箭头“配置数据源”弹出对话框选择业务对象  即数据源需要调用到的业务层方法  比如班级业务对象 bll.classes  下一步

Asp.Net中的数据源概述与配置及实例代码

3、可以分别选择增删改查调用的业务层方法  比如查询所有未删除班级 getallclasses(boolean isdel)带有参数是否删除下一步对参数进行设置

Asp.Net中的数据源概述与配置及实例代码

4、设置isdel的默认值为false

Asp.Net中的数据源概述与配置及实例代码

5、至此数据源即配置完成

6、界面中拖入dropdownlist数据控件  同样点击右上角=》选择数据源为上述objectdatasources1

Asp.Net中的数据源概述与配置及实例代码

运行结果

Asp.Net中的数据源概述与配置及实例代码

补充:

q:我第一访问该页面的时候下拉框加载出数据  如果第二次我发送数据请求时不调用getallclasses方法  页面下拉框还会显示数据吗?

代码解答

前台页面简单控件

复制代码 代码如下:

<asp : dropdownlist id ="dropdownlist1" runat ="server">
</asp : dropdownlist>
<input type="submit" value="再次请求" />

后台页面代码
复制代码 代码如下:

public partial class objectdatasourcescontrol : system.web.ui.page {
protected void page_load( object sender, eventargs e) {
//由于数据绑定控件默认会将数据保存在viewstate中,因此不会每次刷新页面都会重新加载数据,只有第一次需要加载(!ispostback)
if (!ispostback) {
list <model.classes > lists = new bll.classes ().getallclasses(false );
//用代码绑定可以将任何实现了ienumerable接口的对象绑定到数据绑定控件。比如:
//dropdownlist1.datasource = new object[] { 3, 5, 6 };
//dropdownlist1.databind();
dropdownlist1.datatextfield = "cname" ;
dropdownlist1.datavaluefield = "cid" ;
dropdownlist1.datasource = lists;
dropdownlist1.databind();
}
}
}

当点击"再次请求时"  后台页面判断ispostback=false不会再次getallclasses  那为什么页面下拉框中仍然有值呢?

a:因为服务器返回的页面中包含__viewstate 在页面生命周期pageload之前执行的loadstate就是将客户端提交的__viewstate保存的控件属性与值还原到页面控件中  如下页面源文件截图

Asp.Net中的数据源概述与配置及实例代码