当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET数据绑定之DataList控件

ASP.NET数据绑定之DataList控件

2017年12月12日  | 移动技术网IT编程  | 我要评论

北标,市一宫电影院,色qq群号码

datalist控件是.net中的一个控件。datalist控件以表的形式呈现数据(在属性生成器中可以编辑),通过该控件,您可以使用不同的布局来显示数据记录(使用模板编辑),例如,将数据记录排成列或行的形式。您可以对 datalist控件进行配置,使用户能够编辑或删除表中的记录(使用edititemtemplate模板和selecteditemtemplate模板)。datalist控件不使用数据源控件的数据修改功能,您必须自己提供此代码。

一、datalist 与 repeater比较

  •     1、datalist比repeater多了两个模板:selecteditemtemplate和edititemtemplate,支持选择和编辑功能。
  •     2、datalist有可视化的模板编辑和属性编辑,而repeater控件不指定内置布局,与datalist相比,数据编辑起来比较麻烦。
  •     3、datalist中的内容是以表格的形式呈现数据,这样一来,使数据排列更加美观,而repeater自己需要添加表格才行。
  •     4、datalist将项显式放在html表中,repeater则不然。

二、datalist中的模板
itemtemplate、alternationgitemtemplate、separatortemplate、headertemplate、footertemplate、selecteditemtemplate 、 edititemtemplate。

三、事件

1、冒泡事件
    在“.net” 框架包含三个支持事件冒泡的标准控件:repeater、datalist和datagrid控件。这些控件可以让你捕获其子控件的事件。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。
    datalist控件支持事件冒泡,可以捕获datalist内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于datalist内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果datalist中包含10000个控件呢?或者更多呢?那我们得写多少个事件处理程序。所以有了事件冒泡,不管datalist中包含多少个控件,我们只需要一个处理程序就可以了。我的理解就是将程序封装,再通过继承的机制决绝问题。

2、datalist支持的事件
    editcommand:由带有commandname=”edit”的子控件产生。
    cancelcommand:由带有commandname=”cancel”的子控件产生。
    updatecommand:由带有commandname=”update”的子控件产生。
    deletecommand:由带有commandname=”delete”的子控件产生。
    itemcommand:datalist的默认事件。

3、事件触发的过程

有了这五个事件,那么当我点击了datalist控件中的某一个按钮的时候,应该触发哪一个事件呢?什么时候才触发它们呢?
    在“asp点net ”中有三个控件带有commandname属性,分别是button、linkbutton和imagebutton,可以设置它们的commandname属性来表示容器控件内产生的时间类型。比如,如果设置datalist中的一个linkbutton的commandname属性为“update”,那么点击此按钮的时候,将会触发datalist的updatecommand事件,我们可以将相关处理代码写到对应的事件处理程序中去。
   注意:itemcommand事件是datalist控件产生的默认事件,任何datalist控件中commandname为delete/cancel/update/edit的按钮被点击后,事件itemcommand首先被触发,然后才是相应的事件。

四、编辑datalist中的数据

    1、通过选择datalist中某一项的主键而进行编辑,使用datalist控件中的datakeys集合。
    在选择datalist中的一个项时,通常需要获取与这个项相关联的主键的值。可以使用datakeys集合来获取与一个项想关联的主键的值。在创建了datakeys集合后,就可以通过传递项的索引值给datakeys集合来获取datalist中与相关项关联的主键值。比如,要获取由 datalist显示的第三项的主键值,就可以是使用:datalist1.datakeys[2],如果要在datalist控件的事件处理函数中发生事件的项的主键值,则用:datalist1.datakeys[e.item.itemindex]。

    2、编辑datalist中的项
    可以使用datalist控件来编辑数据表中的某一条记录,事实上,在datalist中完成这样的操作非常的方便,不像在asp中需要在多个页面中来回切换。datalist控件具有一个名为edititemtemplate的模板,在edititemtemplate中放置表单控件,以便能在datalist中编辑特定的项。当datalist的edititemindex属性的值为datalist某一项的索引的时候,对应的项将会以edititemtemplate模板显示;当属性值为-1时,表示不显示edititemtemplate模板。

    3、选择datalist中的项
    数据绑定到datalist后,datalist中的每一项都有一个索引号,第一项的索引为0,依次往下编号。我们可以利用索引来确定datalist中具体的项。
   datalist默认以itemtemplate或itemtemplate+alternatingitemtemplate模板显示数据项,当datalist的selectedindex属性的值为datalist某一项的索引的时候,对应的项将会以selecteditemtemplate模板显示。当该属性值为-1时,表示不显示selecteditemtemplate模板。

   说了这么多,光说不练是嘴把式,上面都是一些理论知识,只有自己用到了才能深深地体会到其中的功能,下一篇就是针对datalist的实践篇,敬请关注!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网