【问题标题】:Usercontrol pageload events fires AFTER ASPX pageload event用户控件页面加载事件在 ASPX 页面加载事件之后触发
【发布时间】:2013-02-09 00:46:04
【问题描述】:
  1. 我有一个用户控件 (WODetails.ascx),它获取 WOCode 并填写一些与工单相关的字段。
  2. 一旦我点击网格控件(ROWCommand 事件触发),我就有一个包含网格及以上用户控件的 ASPX 页面

我想在 rowcommand 事件触发后调用 pageload 事件,因为 rowcommand 重新运行 WOCOde 并且我的用户控件应该相应地填充字段。但问题是用户控件页面加载事件在ASPX pageload 事件触发后触发

【问题讨论】:

    标签: c# asp.net webforms


    【解决方案1】:

    Page_Load是.NET框架调用的事件,目的是通知Controls页面生命周期的阶段。它不适用于这种交流。

    如果你想和UserControl通信,为什么不在UserControl上写一个自定义方法呢?

    public class WODetails : UserControl
    {
        ...
    
        public void DoMyStuff(object WOCOde)
        {
            ...
        }
    
        ...
    }
    

    在 ASPX 上,您只需在需要时调用它:

    void grdDummy_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        object WOCOde = GetWOCode(e);
        WODetails.DoMyStuff(WOCOde);
    }
    

    【讨论】:

    • 亲爱的。我已经试过了。我的用户控件包含一些 ASPX 控件,调用自定义方法会加载控件。它返回异常“对象引用未设置为对象的实例”。为此,我需要调用 pageload 事件,然后调用任何方法都可以。我猜
    • 首先,我无法知道您尝试过或未尝试过什么。因为也许你只是没有在这个问题上说清楚。其次,它“返回”的异常是不言自明的。只需调试您的代码。我认为很明显我的答案只包含伪代码。
    • 有什么方法可以在网格行命令上调用我的 Usercontrol 的 Pageload 事件?
    • 页面加载事件被框架调用。确实有自己调用它的方法,但是请向我解释为什么它会解决您的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多