C#学习教程:将事件分配给Repeater控件内的自定义控件在Repeater控件的ItemDataBound事件中,我将一个事件分配给DropDownList,如下所示:myControl.DataSource=myObject;myControl.DataBind();myControl.DropDownList.SelectedItemChange+=MyMethod_SelectedIndexChanged;myControl.DropDownList.AutoPostBack=true;....}protectedvoidMyMethod_SelectedIndexChanged(objectsender,EventArgse){//做.}事件永远不会发生。我需要帮助。您的事件不会在PostBack中引发,因为您的事件处理程序尚未附加(如果您的转发器是数据绑定的,它只会在页面生命周期的迭代期间附加)。如果您在标记中以声明方式附加事件处理程序,例如:然后在回发期间调用您的事件处理程序。有两件事你可以尝试看看它是否有帮助:尝试在每个页面请求上绑定MyRepeater,而不仅仅是在什么时候!是回发。在OnInit中绑定MyRepeater。对于1)如果您在页面首次加载时创建动态创建的控件,然后在回发发生时再次创建它,ASP.NET将注意到引发的事件匹配并将触发事件。对于2)设计者总是将事件附件放在OnInit中,尽管它在OnLoad中也应该可以正常工作。首先确保您的数据绑定不会重置您的下拉列表。这是控件的代码,它将嵌套在转发器ItemTemplate控件背后的代码将嵌套在转发器ItemTemplatepublicpartialclassListBoxContainer:System.Web.UI.UserControl{//declaretheeventusingEventHandlerpublicevent事件处理程序ListBox_SelectedIndexChanged;protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidLstFromControl_SelectedIndexChanged(objectsender,EventArgse){//fire事件:检查null查看委托是否订阅if(ListBox_SelectedIndexChanged!=null){ListBox_SelectedIndexChanged(sender,e);请注意,上面的控件在内部使用列表框更改事件,然后触发它自己的事件:ListBox_SelectedIndexChanged。您还可以在此处创建自定义事件参数,但这使用标准EventArgs。带有控件的转发器可能是这样的比如在转发器所在页面的顶部注册了一个控件它处理事件ListBox_SelectedIndexChanged,处理这个事件的方法在转发器所在页面的代码后面位于。以上就是C#学习教程:给Repeater控件中的自定义控件分配事件分享全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——protectedvoidListBoxControl_SelectedIndexChanged(objectsender,EventArgse){//一些代码}本文收集自网络,确实不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
