【问题标题】:How to handle dynamic user control events in aspx page如何处理aspx页面中的动态用户控件事件
【发布时间】:2011-03-01 05:58:53
【问题描述】:

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

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

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

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

但是这一行在 **testUsrControl.Drpdatafield_SelectIndexChanged ** 处出现错误。错误是“Drpdatafield_SelectIndexChanged”在 UserControl 中不存在。

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

谢谢, 鲁巴

【问题讨论】:

    标签: asp.net user-controls dynamic


    【解决方案1】:

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

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

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

    【讨论】:

    • 这里,是用户控件的 MyUserControlType 名称吗?如果是这样,即使在 aspx 页面中注册用户控件后,我也会在 aspx 页面中获取用户控件名称的名称。请问详细说明一下?
    • 我从用户控件标记文件中得到了类型,但是要关联用户控件和aspx页面?
    猜你喜欢
    • 1970-01-01
    • 2019-02-08
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多