8.27 DataList控件的使用
来源:互联网 发布:尚学堂java笔记 编辑:程序博客网 时间:2024/05/21 22:22
今天看了一下DataList控件的使用,坐下笔记。声明一下:… 是省略号,虽然我习惯把它当成句号。
1 DataList控件绑定到数据库
嗯,这个和GridView控件的绑定方法差不多一样吧,可以写一个方法,基本的代码如下:
其中,DataList为控件的ID,datatable为DataTable类的一个实例(在ADO.NET语句中把DataSet改成DataTable就OK了,在网上看到有人说用DataTable更节省资源,没验证过)
跟GridView空间不同的是,DataList还有一半工作得做:
源代码视图,在<asp:DataList…></asp:DataList>中插入三条主要的语句(其他的还没试过),分别是:
<HeaderTemplate></HeaderTemplate> (列头显示的内容,通常都是放html代码的标签前半部分,比如<table>)
<ItemTemplate></ItemTemplate> (数据元素,也就是数据的内容,通常都是放可以重复的html代码,比如<tr><td>content</td></tr>)
<SeparatorTemplate></SeparatorTemplate> (两条数据之间的分隔符,这个就不用比如了,html中实线虚线图片随便挑)
<FooterTemplate></FooterTemplate> (列尾显示的内容,通常都是放html代码的标签后半部分,比如</table>)
嗯,还有最后一步,就是把数据库中每一行的数据显示出来,实现这个步骤的代码如下:
<%#DataBinder.Eval(Container.DataItem, "[name]")%> (可以把这个东东想象成一个string类型的列内容,里面的[name]是数据库中的一个列的字段,你懂的)
把上面的代码放在<ItemTemplate></ItemTemplate>中间就OK了,当然中间还可加入一些想要的内容,比如:
<ItemTemplate><tr><td><%#DataBinder.Eval(Container.DataItem, "[name]")%></td></tr></ItemTemplate>
要显示N个列就添加N个<%…%>
至此,将DataList控件绑定到数据库就算OK了,看起来比GridView复杂很多,操作起来倒不会。而且个人感觉,DataList控件比GridView控件灵活,哈哈。
2 DataList实现分页
感觉还是先记一下分页比较好,因为DataList分页的实现只要改变一下数据绑定就OK了,将上面方法的代码改一下,具体如下:
上面的代码就可以实现分页了…
不过还有一个问题:如何实现翻页?上面的代码只能显示第一页的5条记录(PageSize设置成5了)…
分页还得实现一些常用的功能,比如:
总页数:15 当前页数:1 首页 上一页 下一页 末页
实现起来也不算麻烦,具体步骤如下:
首先添加几个控件(控件类型和ID不是固定的,可以根据个人喜好):
总页数: //这是个Label控件,Text属性设置为:总页数:
15: //这是个Label控件,Text属性没要求,ID设置为:lblTotalValue
当前页数: //这是个Label控件,Text属性设置为:当前页数:
1 //这是个Label控件,Text属性设置为:1(因为页面刚加载就是显示第一页),ID设置为:lblTotalValue
首页 //这是个LinkButton控件,Text属性设置为:首页),ID设置为:lbtnFirst
上一页 //这是个LinkButton控件,Text属性设置为:上一页),ID设置为:lbtnPrevious
下一页 //这是个LinkButton控件,Text属性设置为:下一页),ID设置为:lbtnNext
末页 //这是个LinkButton控件,Text属性设置为:末页),ID设置为:lbtnLast
控件添加OK之后,在上面的some other code 1 插入如下代码:
当点击后面四个LinkButton后,浏览器要跳转到相应的页面,这当然免不了Click事件,添加事件,代码如下:
上面的代码不难理解,必须注意的是:4个事件都是在设置“当前页”也就是lblTotalValue的Text属性值,因为一旦lblTotalValue的Text属性值确定下来,根据GetBind()方法中的
int currentIndex = Convert.ToInt32(this.lblCurrentValue.Text) - 1;
pagesource.CurrentPageIndex = currentIndex;
这两句代码就可以让浏览器跳转至指定页面。
还有一个问题:当前页数为1的时候,“首页”和“上一页”这两个功能应该禁止触发。同理,当前页数为末页的时候,“末页”和“下一页”这两个功能应该禁止触发。在some other code 2 处插入如下代码:
至此,分页功能也就基本实现了。
3 DataList实现列操作
要实现能在页面上对数据进行操作(增删查改),首要步骤就是要能定位到数据表中的具体元素位置。
感觉就像CSS和Javascript一样,要先找到对象然后才能实行设置。
嗯,首先要先添加一个CommandName属性,添加的具体位置如下:
<ItemTemplate><asp:Button ID="id" runat="server" Text="…" CommandName="commandname" /></ItemTemplate>
添加一个事件:ItemCommand(跟点击事件差不多,要触发事件就得添加CommandName属性,看下面就知道了)
要获取上面Button的Text属性的值,可以通过如下代码:
当然,如果想获取<%#DataBinder.Eval(Container.DataItem, "[name]")%> 代表的值,可以把添加一个Label控件,然后设置Label控件的Text=<%#DataBinder.Eval(Container.DataItem, "[name]")%>
代码如上,根据Label控件的属性就可以获取Text的值。
还有一个问题,怎么获取没有显示的列的内容呢,比如说表的主键[id]?
可以通过如下代码获得:
datatable就是绑定到DataList的数据表。
在网上还看到另外一种办法,不过我试过后没成功,断了N久的点也没看出哪里出错了,先记下来,代码如下:
想法大致就是:想把已经绑定到DataList的数据表取出来保存在dt中,然后再从dt中取出想要的[id]字段中的值。应该没错,不过用断点发现dt的值为null,搞不明白…
睡觉了,困…
- 8.27 DataList控件的使用
- DataList控件的使用
- DataList控件的使用
- DataList和ListView数据控件的使用
- DataList控件使用!
- 使用DataList控件
- DataList控件使用详解
- DataList控件使用代码
- 使用DataList控件
- 使用DNN的分页控件对DATALIST控件进行分页
- 数据绑定控件之一DataList控件的使用
- DataList和Repeater里的自定义button控件的使用
- gridview,datalist,repeater控件使用
- 使用DataList控件进行数据访问的综合实例
- DataList分页方法及分页控件的使用
- ASP.net datalist,gridview 编辑模板里面控件的使用;
- DataList控件的分页代码
- 实现DataList控件的分页
- 语言真的是一门艺术,需要花心思研究
- 新手
- VC鼠标单击与双击的冲突问题
- [SSL]常见加密算法分,用途,原理以及比较
- Play!framework一个登陆的小例子
- 8.27 DataList控件的使用
- ASP.NET 页面缓存以及数据缓存等收集
- [SSL]常见加密算法分类
- NET调用后台编程之Asp.Net前台调用后台变量详解
- 转一篇十几年前的旧文,与各位共赏之
- [SSL]SSL算法库的理解与测试
- asp.net文本编辑器FCKeditor使用方法详解
- 资料
- 图解 Android Handler 线程消息机制