[英]Add Event Handler to User Control from custom object
我创建了一个用户控件,其中将包含LinkButtons表(和其他信息)。 我在另一个自定义对象中创建表行,并在这些表行的某些单元格中返回带有链接按钮的TableRowCollection。
在用于用户控件的代码中,我为这些LinkButton的按钮单击创建了一个事件处理程序。 我将用户控件传递给方法调用以创建表行(使用“ this”),然后尝试将事件处理程序添加到LinkButton的“ Click”中。 由于某种原因,事件处理程序不会在由该按钮引起的回发中触发。 关于如何使此事件触发的任何想法?
这是我创建按钮并添加事件处理程序的代码:
LinkButton button = new LinkButton();
button.Text = movie.Title;
button.Click += new EventHandler(control.Link_Click);
button.CommandArgument = result.LocalID.ToString();
cell1.Controls.Add(button);
其中“控件”是作为参数传入的用户控件,而“ Link_Click”是事件处理程序。
提前致谢!
首先,如果事件处理程序已经在用户控件内,则无需将对其的引用传递到其自己的方法中。 您可以简单地访问事件处理程序中的任何属性或方法。
事件依赖于控件ID连接到正确的控件。 如果您不是在每次回发时都以完全相同的方式创建链接按钮,并确保它们具有与以前相同的ID,那么您的事件处理程序将不会触发,因为ASP.Net管道将无法执行在控制树中找到它认为正确的按钮。
此外,如果您在每次回发时都将用户控件重新绑定到其数据源,则可能导致丢失某些控件的事件,原因与上文所述相同。
检查以确保每次都正确地重新创建控件,并且没有每次都重新绑定用户控件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.