如何在aspx页面中处理动态用户控件事件

时间:2010-10-28 04:13:26

标签: asp.net user-controls dynamic

我有一个aspx网页,其中动态添加了用户控件,如下所示:

UserControl testUsrControl = LoadControl("TestUsrControl") as UserControl;
testUsrControl.ID ="test";

然后我尝试在aspx中添加一个用户控件的事件处理程序,如下所示:

testUsrControl.Drpdatafield_SelectIndexChanged += new EventHandler(this.Drpdatafield_SelectIndexChanged);

但这行在** testUsrControl.Drpdatafield_SelectIndexChanged **中给出错误。 UserControl中不存在错误“Drpdatafield_SelectIndexChanged”。

如何动态地在aspx页面中获取testUsrControl的事件。

谢谢, 鲁帕

1 个答案:

答案 0 :(得分:2)

您需要将控件转换为正确的类型(比如MyUserControlType),然后验证它是否正常

MyUserControlType testUsrControl = LoadControl("TestUsrControl") as MyUserControlType;
if(testUsrControl != null {
          testUsrControl.Drpdatafield_SelectIndexChanged += new EventHandler(this.Drpdatafield_SelectIndexChanged)
}

您从usercontrol标记文件中获取ClassName的类型 <% @ Control Language="C#" ClassName="MyUserControlType" %>