




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DataList内容详解Asp.Net 2010-11-03 10:33:59 阅读228 评论0 字号:大中小订阅 ataList是另一种显示数据控件,它与GridView不同的是,它全部使用模板进行设计,并且DataList的模板是对整行设置,而不是像GridView那样只对某一列进行模板设计。正是由于它使用模板进行设计,所以它的灵活性比GridView更高,但事情总是有两面性的,灵活度提高了,必然带来使用上的复杂。因此DataList在易用性上真的不如GridView好,因此在要求有较高灵活性的时候我们最好使用DataList控件。 (车延禄)DataList控件在页面上的初始外观很简单 在DreamWeaver中的模板如下项模板页眉页脚模板在使用的时间我们一般与DreamWeaver结合使用,在DreamWeaver中做好界面复制到相关模板中使用。一、用DataList实现简单的二维表格形式的显示 下面是我们在DataList中创建完页眉模板与项模板后的代码,页眉的代码被放在标记中间,而普通项的代码被放在标记中间。 编号 名称 价格 产地 货架 图片 由于模板内容是我们复制过来的Table表格,所以在数据绑定的时间系统不知道该把数据源的值显示在哪个td标记里面。为此我们使用来手动指定DataList如何绑定至数据源。 这里需要说明的是DataList只支持单向绑定,所以当你使用进行绑定时也只是一种单向绑定的效果,而不像GridView那样双向绑定。因为DataList使用的是单项绑定,所以它无法像 GridView那样自动产生更新与删除的效果,如果想实现更新删除的功能的话则需要我们手动编写代码了。 (车延禄) 运行效果: 如果你对这个页面不太满意的话,那你可以打开源页面对其中的Table表格进行样式设置达到满意的效果。 思考:如何把图片也显示出来? 思考:如何把普通项和交替项实现不同的背景色? 二、用DataList实现不规则的显示 (车延禄) 像上个例子,如果我们把图片显示出来的话,那图片会把我们的数据行撑大,这样的界面很不美观,我们可以把界面设置为如下方式: 这种样式的显示其实很简单,只需要把模板列变一下就可以了 然后再在源代码相应位置处用绑定到数据源中就可以了。 要想一行显示多个水果的话,请设置RepeatColumns和RepeatDirection两个属性。 RepeatColumns属性:设置一行显示几项 RepeatDirection属性:设置项的布局方式。Virtical-竖排优先,Horizontal-以行优先 三、用DataList实现更新和删除 用DataList修改和更新 第一步:在普通项模板或交替项模板中加入一个按钮,并把该按钮的CommandName设为edit。 第二步:编辑EditTemplate,在其中要执行修改的地方加入文本框或其它控件,并加入“更新”和“取消”两个按钮,分别把这两个按钮的CommandName设为update和cancel 第三步:在EditCommand事件中编写代码,把当前项用编辑模板显示出来 第四步:在UpdateCommand事件中编写代码把修改完的数据更新回数据库,在CancelCommand事件中编写代码,把当前项变回普通项状态 运行效果: 在DataList中常用的事件: ItemCreated:项创建完成时触发,与GridView中的RowCreated事件相似 ItemDataBound:数据绑定完成时触发,与GridView中的RowDataBound事件相似 CancelCommand:当CommandName是cancel的按钮被点击时触发该事件 DeleteCommand:当CommandName是delete的按钮被点击时触发该事件 EditCommand:当CommandName是edit的按钮被点击时触发该事件 UpdateCommand:当CommandName是update的按钮被点击时触发该事件 SelectedIndexChanged:当CommandName是select的按钮被点击时触发该事件 ItemCommand:任何一个按钮被点击时触发该事件,包括CommandName是cancel,delete,edit,update,selected的按钮 四、DataList分页 (车延禄) DataList默认不带分页功能,但可以与PagedDataSource对象结合使用进行分页,但对于页数比较多的情况下,这种分页方式太耗费资源,所以建议使用存储过程分页 分页的存储过程: -取得分页的总页数 create proc UP_CAR_PAGECOUNTpagesize int AS declare c int select c = count(*) from car return ceiling(cast(c as float)/cast(pagesize as float) GO -分页的存储过程 create proc UP_CAR_PAGESELECT pagesize int, nowpage int-, AS declare c int declare num int select num = (nowpage-1) * pagesize select c = count(*) from car if pagesize 0 begin declare cmd varchar(1000) select cmd = select top + cast(pagesize as varchar(50)+ * from car as c1 where code not in (select top +cast(num as varchar(50)+ code from car as c2 order by c2.code) order by c1.code exec (cmd) end GO 数据访问类代码: public int GetPageCount(int pagesize) SqlCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = UP_CAR_PAGECOUNT; cmd.Parameters.AddWithValue(pagesize, pagesize); cmd.Parameters.Add(RETURN_VALUE, SqlDbType.Int).Direction = ParameterDirection.ReturnValue; conn.Open(); cmd.ExecuteNonQuery(); int n = (int)cmd.ParametersRETURN_VALUE.Value; conn.Close(); return n; public List select(int pagesize, int nowpage) List list = new List(); CarData data; SqlCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = UP_CAR_PAGESELECT; cmd.Parameters.AddWithValue(pagesize, pagesize); cmd.Parameters.AddWithValue(nowpage, nowpage); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() data = new CarData(); data.Ids = (int)drids; data.Code = (string)drcode; data.Name = (string)drname; data.Brand = (string)drbrand; data.Time = (DateTime)drtime; data.Oil = (decimal)droil; data.Powers = (int)drpowers; data.Exhaust = (int)drexhaust; data.Price = (decimal)drprice; data.Pic = (string)drpic; list.Add(data); conn.Close(); return list; 页面调用代码: private const int PAGESIZE = 5; protected void Page_Load(object sender, EventArgs e) int pagecount = new CarDA().GetPageCount(PAGESIZE); for (int i = 0; i pagecount; i+) LinkButton lb = new LinkButton(); lb.Text = (i+1).ToString(); lb.Click += new EventHandler(lb_Click); Panel1.Controls.Add(lb); Literal lt = new Literal(); lt.Text = Panel1.Controls.Add(lt); if (!IsPostBack) BindList(1); private void BindList(string nowpage) ObjectDataSource1.TypeName = CarDA; ObjectDataSource1.SelectMethod = select; ObjectDataSource1.SelectParameters.Clear(); ObjectDataSource1.SelectParameters.Add(pagesize,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南人文科技学院《蒙学研读》2023-2024学年第二学期期末试卷
- 河北政法职业学院《武术与搏击》2023-2024学年第二学期期末试卷
- 昆玉职业技术学院《移动互联网开发》2023-2024学年第二学期期末试卷
- 2024年度河南省二级注册建筑师之建筑结构与设备模拟题库及答案下载
- 佛山职业技术学院《当代西方伦理学》2023-2024学年第二学期期末试卷
- 嘉兴职业技术学院《传统技艺保护与活化工作坊》2023-2024学年第二学期期末试卷
- 广西中医药大学《体育三篮球》2023-2024学年第二学期期末试卷
- 河南护理职业学院《信息传输与信道编码》2023-2024学年第二学期期末试卷
- 郑州商学院《知识论》2023-2024学年第二学期期末试卷
- 襄阳汽车职业技术学院《工程制图Ⅰ》2023-2024学年第二学期期末试卷
- 异位妊娠的诊治进展
- 离心泵设计计算
- 苏教版小学数学四年级下册期末测试卷(5套含答案)
- 施工图审核报告
- 七年级下册英语语法精解试题
- GB/T 5291.1-2023电火花成形机床精度检验第1部分:单立柱机床(十字工作台型和固定工作台型)
- IgG4相关性疾病课件
- 腰椎ODI评分完整版
- 实验五探索淀粉酶对淀粉和蔗糖水解的作用
- DB51-T 3041-2023佯黄竹丰产栽培技术规程
- 四川省某高速公路材料试验专项监理细则
评论
0/150
提交评论