Datalist控件事件使用及调用模板内控件
2012-12-27 17:51
211 查看
本文摘自两篇博文,吸取了里面用得着的东西,大家对本文不了解的,可以点开来看看:
http://blog.csdn.net/oobibigo/article/details/2570691
http://blog.sina.com.cn/s/blog_3f39ffb50100c36q.html
一、理解事件冒泡
在ASP.NET框架包含三个支持事件冒泡的标准控件:Repeater、DataList和DataGrid控件。这些控件可以让你捕获其子控件的时间。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。
DataList控件支持事件冒泡,可以捕获DataList内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于DataList内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果DataList中包含10000个控件呢?或者更多呢?那我们得写多少个事件处理程序。所以有了事件冒泡,不管DataList中包含多少个控件,我们只需要一个处理程序就可以了。DataList控件支持五个事件:
1) EditCommand:由带有CommandName=”edit”的子控件产生
2) CancelCommand:由带有CommandName=”cancel”的子控件产生
3) UpdateCommand:由带有CommandName=”update”的子控件产生
4) DeleteCommand:由带有CommandName=”delete”的子控件产生
5) ItemCommand:DataList的默认事件
有了这五个事件,那么当我点击了DataList控件中的某一个按钮的时候,应该触发哪一个事件呢?什么时候才触发它们呢?在ASP.NET中有三个控件带有CommandName属性,分别是Button、LinkButton和ImageButton,可以设置它们的CommandName属性来表示容器控件内产生的时间类型。比如,如果设置DataList中的一个LinkButton的CommandName属性为“update”,那么点击此按钮的时候,将会触发DataList的CancelCommand事件,我们可以将相关处理代码写到对应的事件处理程序中去。当点击不同的按钮时,在DataList中产生不同的事件,执行不同的程序。
二 调用模板内控件
要从控件中获取值,在代码中无法直接通过控件名进行操作,需要首先获取选定的项,再根据项获取其中的控件,再取值。即
string a = ((TextBox)e.Item.FindControl("TextBox1")).Text; 由于 e.Item.FindControl()方法获取的控件类型为 Object,因此需要显式类型转换,再操作控件。
http://blog.csdn.net/oobibigo/article/details/2570691
http://blog.sina.com.cn/s/blog_3f39ffb50100c36q.html
一、理解事件冒泡
在ASP.NET框架包含三个支持事件冒泡的标准控件:Repeater、DataList和DataGrid控件。这些控件可以让你捕获其子控件的时间。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。
DataList控件支持事件冒泡,可以捕获DataList内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于DataList内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果DataList中包含10000个控件呢?或者更多呢?那我们得写多少个事件处理程序。所以有了事件冒泡,不管DataList中包含多少个控件,我们只需要一个处理程序就可以了。DataList控件支持五个事件:
1) EditCommand:由带有CommandName=”edit”的子控件产生
2) CancelCommand:由带有CommandName=”cancel”的子控件产生
3) UpdateCommand:由带有CommandName=”update”的子控件产生
4) DeleteCommand:由带有CommandName=”delete”的子控件产生
5) ItemCommand:DataList的默认事件
有了这五个事件,那么当我点击了DataList控件中的某一个按钮的时候,应该触发哪一个事件呢?什么时候才触发它们呢?在ASP.NET中有三个控件带有CommandName属性,分别是Button、LinkButton和ImageButton,可以设置它们的CommandName属性来表示容器控件内产生的时间类型。比如,如果设置DataList中的一个LinkButton的CommandName属性为“update”,那么点击此按钮的时候,将会触发DataList的CancelCommand事件,我们可以将相关处理代码写到对应的事件处理程序中去。当点击不同的按钮时,在DataList中产生不同的事件,执行不同的程序。
二 调用模板内控件
要从控件中获取值,在代码中无法直接通过控件名进行操作,需要首先获取选定的项,再根据项获取其中的控件,再取值。即
string a = ((TextBox)e.Item.FindControl("TextBox1")).Text; 由于 e.Item.FindControl()方法获取的控件类型为 Object,因此需要显式类型转换,再操作控件。
相关文章推荐
- Android 使用代码主动去调用控件的点击事件(模拟人手去触摸控件)
- REPEATER控件显示数据,交替项显示;分页类的使用,Repeater控件分页;使用DataList控件绑定数据;使用DataList控件的选择模板
- 用户控件使用事件与调用页面交互
- ASP.net datalist,gridview 编辑模板里面控件的使用;
- 用户控件使用事件与调用页面交互
- 使用DataList控件的编辑模板
- 服务器控件使用js进行验证(选择地调用后台事件)
- 服务器控件使用Javascript进行验证(选择地调用后台事件)
- 服务器控件使用js进行验证(选择地调用后台事件)
- 页面调用OCX(ActiveX)控件,自动下载、注册及 javascript对ActiveX的访问、控制和事件调用等。
- DataList控件使用初步
- Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- js调用.net后台事件、后台调用前台以及js调用服务器控件
- Metro之GridView控件的使用-绑定不同的模板样式显示
- 自定义android用户控件,使用回调函数实现自定义事件
- c# winform动态生成窗体及控件,并使用控件事件
- 使用Delphi调用条形码控件BarTender打印标签
- C#使用委托调用主线程上的控件
- OnClick事件的Sender参数的前世今生——TWinControl.WinProc优先捕捉到鼠标消息,然后使用IsControlMouseMsg函数进行消息转发给图形子控件(意外发现OnClick是由WM_LBUTTONUP触发的)