首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能使用反射获取LinkButton事件的事件处理程序?

反射是一种在运行时动态获取和操作程序的能力。在.NET框架中,反射可以用来获取和调用对象的成员,包括属性、方法和事件。然而,使用反射获取LinkButton事件的事件处理程序是不可行的,原因如下:

LinkButton是ASP.NET Web Forms中的一个控件,用于在网页上创建可点击的链接按钮。LinkButton的事件处理程序是通过事件订阅的方式实现的,即在代码中使用+=操作符将事件处理程序方法与LinkButton的事件关联起来。例如,可以使用以下代码将一个名为"OnClick"的方法与LinkButton的Click事件关联起来:

代码语言:csharp
复制
myLinkButton.Click += OnClick;

当用户点击LinkButton时,与该事件关联的方法将被调用。然而,反射只能获取和调用对象的成员,而无法获取事件订阅的信息。因此,无法直接使用反射来获取LinkButton事件的事件处理程序。

如果您需要动态获取LinkButton事件的事件处理程序,可以考虑以下替代方案:

  1. 使用命名约定:在设计LinkButton事件处理程序时,为事件处理程序方法命名时遵循一定的约定,例如以"OnClick_"开头,后面跟着LinkButton的ID。然后,通过反射获取LinkButton的ID,并构造出对应的事件处理程序方法名,从而间接地获取事件处理程序。
  2. 使用自定义属性:为LinkButton控件添加一个自定义属性,用于存储事件处理程序的名称或类型。然后,通过反射获取LinkButton的自定义属性值,从而获取事件处理程序。

需要注意的是,以上替代方案都需要在设计LinkButton事件处理程序时进行额外的约定或修改,以便能够通过反射获取事件处理程序。同时,这些方案可能会增加代码的复杂性和维护成本。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NETWebFrom组件LinkButton编程

主要作用是就是在ASP.NET页面中显示一个超链接。当这个链接被按动时候,页面就会往服务器端传递信息,并且在服务器端来处理相应事件。 一....当然你也可以通过给每一个LinkButton命不同名(当然你就是想命同样名,在ASP.NET中也是不可以),然后在事件处理函数中,通过检测Sender属性值来判断哪个LinkButton被按动。...CommandEventArgs类存储了和按钮(Button)事件相关数据,并且可以在事件处理中通过CommandEventArgs类属性来访问这些数据。...总结: 本文介绍LinkButton组件一些重要组成内容,即一些重要属性和事件。并通过一个程序例子来具体说明他使用方法。...但此组件有一个缺憾,就是不能在不支持javascript语言浏览器上面使用,这是因为他使用了javascript语言中Submit( )方法来提交页面的。

1.1K30

基于业务对象(列表)排序

与筛选一样,排序也是常见且重要操作。在对业务对象进行排序时,不能使用ObjectDataSource作为数据源,因为它只对 DataView、DataTable 和 DataSet 支持自动排序。...但你仍可以对GridView编写Sorting事件处理方法,通过拼装SQL语句,使用“Order By”子句来完成排序。...简单排序 - 对固定属性默认排序 与上篇文章不同,不再说明使用拼装SQL来完成排序方式,我们直接看基于List对象排序。...在ObjSort2.aspx页面上,表格标题使用LinkButton,有兴趣的话可以编写LinkButtonClick事件,来动态地实现这一排序过程。...大家可以看到,一旦掌握了方法以后,再编写诸如OrderComparer这样代码是枯燥无味,以后我们再一起看看如果利用反射来编写一个小程序为我们自动地生成这些代码。

1.9K20

个性化分页

但是它同样有缺点,不能按照我们想像产生各种我们需要样式。 没有办法,想个性化功能,只有自已动手来做了,呵呵。 我们一步步来,首先是导入需要命名空间。...下面的例子,其实也是从国外找来,再加上点个人东东,再汉化,呵呵。今天心情很好,连标签色彩都给大家显示出来了。呵呵,更利于大家看程序。...控件OnClick触发是PageButtonClick事件,DataGrid页面OnPageIndexChanged改变触发是MyDataGrid_Page事件,我们以后就是就是要编写这两件事件代码...MyDataGrid.PagerStyle.Visible=true; } else { MyDataGrid.PagerStyle.Visible=false; } BindGrid(); } 下面是处理点击事件...(全部代码和显示看一下节),我们总思想就是使用LinkButton控件做为翻页标帜,通过判断LinkButtonCommandArgument值,操作DataGridCurrentPageIndex

58320

ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

(后面会讲到aspx和aspx.cs关系,不要急) 1.3 aspx与ashx关系   ashx是一般处理程序,它是一个实现了IHttpHandler轻量级处理程序处理操作都在ProcessRequest...(2)子类与父类:我们使用ASP.NET写网站在运行时候都会被编译生成为一个一个程序集(.dll),而我们aspx页面也会被生成为一个一个类。...PS:当某个页面第一次被访问时候,CLR就会使用一个代码生成器去解析aspx文件并生成源代码并编译,然后以后访问就直接调用编译后dll,这也是为什么aspx第一次访问时候非常慢原因。  ...②不要用LinkButton来实现普通超链接,在实际开发中,还真见过有些人用LinkButton来实现超链接:他们在LinkButtonOnClick事件中写Response.Redirect(...这里使用了DropDownList控件,该控件提供了一个叫做SelectIndexChanged事件,它会帮我们渲染生成selectonchange浏览器事件

2.7K42

EasyUI学习笔记

根据判断,到底是什么组件,根据不同组件添加不同样式文本和样式类 html() 和text()区别: 都是获取元素内容; html()可以给指定标签设置内容可以加入标签...fn大多都是以on开头,大部分复杂组件,都可以在初始化时,使用onxxx属性配置,值为事件响应 onCollapse 折叠是触发 onExpand 展开时触发 小部分简单组件,还是使用JQuery...事件监听方式,使用on方法添加事件.例如linkbutton linkButton没有事件,需要通过jquery方式去处理. <!...", //组件事件 onCollapse:function(){ alert("折叠面板时候触发事件") } }); }); </script...使用$.fn.window.defaults重写默认值对象。 窗口控件是一个浮动和可拖拽面板可以用作应用程序窗口。默认情况下,窗口可以移动,调整大小和关闭。

10.3K30

给自定义控件(Web Control)添加事件几种方法。前两种方法可以不实现IPostBackEventHandler

最近升级分页控件,由于原来使用是VB.net(在VB.net里面添加一个事件是比较容易),现在想改用C#,而原来方法又写得比较笨拙,想换一个更简洁一点方法,所以不得不重新认识一下事件。...我们目的是要给自定义控件加一个事件,以便可以控制LabelText属性。 1、内部事件。     这个好像是名称,就是只在自定义控件内部相应事件使用控件页面不用相应相关事件。...(实现了内部和外部事件相应,但是这时候我们还没有实现传说中接口,这是为什么呢?)     3、“借用”事件,没有成功。     ...这个是button事件带来,虽然后面的代码并不需要button了,但是比较懒,不想自己输出这个js函数,所以还是保留了button事件。     好像还是说不太清楚。...自定义控件事件已经整理清楚了,可以修改分页控件里代码了,原来写比较混乱。分页控件下一个版本(v2.0.0.3)将增加两个事件,这样就可以向吴旗娃分页控件那样灵活使用了。

1.1K70

__dopostback用法

比如,在我们写程序时候经常会需要动态生成一些控件,最简单方法就是通过一个字符串,比如string strButton = ,然后输出到页面...,但是如果我们需要这个控件来执行一些服务器功能,就比较困难了.这里我们就可以用过借用 __doPostBack这个函数来完成.接下来觉个例子来说明一下具体如何调用.       ...,来是这个LinkButton不可见(为什么要这么设置,而不是直接设置 visible属性,我会在下面说明),接下来我们可以在LinkButton里面写一些服务器端代码.然后就是如何通过我们动态生成客户端控件来调...事件中写上onclick=”JavaScript:ExcuteOnServer();",这样当我们点击这个动态生成客户端控件时候,他便会执行LinkButton代码.       ...最后要说一下就是为什么希望LinkButton控件不可见时候,不是通过visible属性来完成.因为当我们把visible属性设置为 false时候,浏览器在解析时候,根本不会把这个控件放在页面上

77920

GridView数据库分页+自定义分页导航(二):自定义分页导航。首页、上一页、下一页、尾页和跳转

列入这样,上一页和下一页和GO使用LinkButton】,也可使用其他控件,【注:LinkButton 在编译后是HTMLa标签】, ?...事件中,我们来判断CommandArgument值,PageIndex是当前页面,PageCount是总页码,当点击页面上上一页或下一页,就会进入这个方法,然后页面加或减,再绑定数据, protected...首页和最后一页是第一页,和最大数据页数,最后我们再做一个跳转页面的,需要一个dropdownList,和一个linkButton,页数集合,这里我们有两种处理 一是在viewData里添加,二是在GridView...然后就是跳转,我们要获取到下拉框选中值,然后进行跳转,这句作用是找到GridView底部Pager行,并在这行中找到“pageLIst”这个控件,再获取值,只有用这句才能获取到值,如果大家有其他方式获取到...完整代码见上面Page_OnClick方法。其第一页和最后一页禁用控制是写在页面上,可以看上面有。

1.5K10

GridView用法,分页

大家好,又见面了,是你们朋友全栈君。...不能单独使用,一般用于textbox等Text属性,并且要用单引号,比如 标签内属性Text='’ 而Eval是单向数据绑定,可单独使用,常用于进行格式化,比如:Text...,但是取到值不是更新后值时,一般就是Load事件了,IsPostBack属性要判断下 f) RowDeleting删除事件: 方法跟上面的事件差不多,只要获得主键,然后调用bll层删除方法即可 g...) RowDataBound事件:单选删除例子上面的LinkButton是手动在模板列中添加控件,若要实现上面的删除功能,还需要在页面源码中给gridView添加上模板列(CommandField里面的删除功能...) 注意选中地方,除了CommandName要用Delete外(会自动对应到Delete事件),还需要手动添加CommandArgument属性 最后在RowDeleting事件中获得该值: LinkButton

1.2K30

事件总线知多少(2)

本着继续学习和回馈大家思想,决定继续完善。本文将继续延续上一篇循序渐进写作风格,来完成对事件总线分析和优化。 ?...3.发现反射问题 基于以上简单回顾,我们可以发现Alpha版本事件总线成功离不开反射支持。从动态绑定到动态触发,都是反射在默默处理着业务逻辑。...如果我们只是简单学习了解事件总线,使用反射无可厚非。但如果在实际项目中,使用反射却不是一个很明智行为,因为其性能问题。尤其是事件总线要集中处理整个应用程序所有事件,更易导致程序性能瓶颈。...,维护事件源和事件处理映射字典是整个程序重中之重。...虽然不能保证单元测试覆盖度,但至少确保了正常业务流转。 ? 7.总结 这一次,通过单元测试,一步一步推进事件总线重构和完善。主要完成了使用IOC替换反射来解耦和一些用例完善。

1.1K70

自定义GridView分页模板

GridView较之DataGrid提供了更加强大、更加完善功能,而且具备了丰富可扩展功能,可以使用GridView提供pagertemplate自定义分页模板: 事实上,GridView默认几中分页样式...,都是将相关按钮CommandName设为Page,而CommandArgument设为相关参数,可接受参数包括,first,last,prev,next,(具体数字),然后按事件回溯...,触发顶层RowCommand,因此我们页可以使用这些默认可识别的参数自定义自己分页模板,asp.net会自动设置当前NewPageIndex,而不需要任何冗余代码。...], [Phone], [Fax], [ContactName] FROM [Customers]">         PageIndexChanging处理程序...,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow //updated at 2006年6月21日3:15:33

87530

Repeater使用方法—基础数据绑定+多级嵌套「建议收藏」

大家好,又见面了,是你们朋友全栈君。...一、基础数据绑定   Repeater控件在编译后不会生成任何多余代码,而GridView等编译后会生成table标签,这样对于页面的负担和UI样式影响方面,使用Repeater就会显得很有优势了。...—————————————————————————————————————— 二 、多级嵌套   如果数据展示需要现实父子孙等多级关系,如图: 需要两个或多个Repeater嵌套使用使用方法是: 1...绑定数据时,在父RepeaterItemDataBound事件中绑定子Repeater,在子RepeaterItemDataBound事件中绑定孙Repeater。...id查询子节点 rpgrantchild.DataBind(); } } } 发布者:全栈程序员栈长

90220

Gridview导出到Excel,Gridview中各类控件,Gridview中删除记录处理

,然后在button1按钮(用来做导出到EXCEL事件中,写入相关代码。...和 GridView_Row_Deleting 事件都会被激发接者,我们处理其rowdatabound事件中: protected void GridView1_RowDataBound(object...之后,当用户选择了确认删除后,我们有两种方法对其进行继续后续删除处理,因为我们将删除按钮设置为Delete,方法一是在row_command事件中写入如下代码: protected void GridView1...DeleteRecordByID(id); } } 另外一种方法是使用gridviewrow_deletting事件,先在页面HTML代码中,添加<asp:GridView DataKeyNames...小结 在本文中,继续探讨了gridview控件一些用法,如导出到excel,在删除记录时处理,以及如何访问gridview中控件等。

2.5K20

js学习: 自定义类库 - miniQuery 2.0

后来隐约有一个想法,是不是可以将miniQuery写得更完善一些呢。意思是说,尽量使用jQuery调用规则,看看自己能不能把常用方法模拟出来?...这个想法产生以后,感觉挺兴奋,正好可以藉由这个机会把js知识点再复习一下。 今后只要有时间,就把miniQuery更新一下,添加新api方法进去。作为自己一个学习记录。...事件相关 :给元素添加事件 4. 属性相关:对元素属性进行各种操作 5....不够以后写案例时候差不多就可以直接调用这个miniQuery.js了,主要方便了自己,如果觉得有必要,就可以立即在里面添加新方法,实现了订制功能。...主要还是用于培养兴趣,本身不是做前端开发,但是个人隐约感觉js在未来必定会火,当然现在也非常受欢迎了,打算继续学下去。 首先来看看miniQuery怎么使用吧。

1.6K70
领券