从UserControl页,调用父页中的Page_Prerender

本文关键字:Page Prerender UserControl 调用 | 更新日期: 2023-09-27 18:18:35

我有一个aspx页面名称MakeRedemption。

在MakeRedemption.aspx中有Page_Prerender() .

我想问,我如何从MakeRedemption调用Page_Prerender()。在Search.ascx.

内容如下:

实际上在我的用户控制页面的一个函数中有一个循环。

page_preender (MakeRedemption.aspx)将在所有循环结束后触发。

我想要的是:每次在循环的每个条目结束之前,我都想触发MakeRedemption上的Page_Prerender。Aspx做某事。
例如:

for (int i = 0 ; i < 10 ; i ++)
{
//some code here
// I would like to trigger Page_Prerender here to do something before end of the loop.
}  // the Page_Prerender (in MakeRedemption.aspx) trigger after all the loop finish.

意味着,这个for循环有i = 10,因此,我想在for循环中触发Page_Prerender 10次。

我在aspx文件中的PreRender函数如下:

protected void Page_Prerender(object sender, EventArgs e)
    {
        //some code here
    }

不确定Page_Prerender()是否被认为是自动生成的OnPreRender()

我想触发这个Page_Prerender()而不是OnPreRender()。

抱歉,如果我问了一个愚蠢的问题,我是编程和c#的新手。

请建议。

谢谢。

从UserControl页,调用父页中的Page_Prerender

最后我找到了方法,步骤如下:在aspx.cs页面中添加以下代码:

delegate void DelMethodWithoutParam();
protected void Page_Load(object sender, EventArgs e)
    {
        DelMethodWithoutParam delParam = new DelMethodWithoutParam(Page_prerender);
        this.ucSearchGifts.PageMethodWithNoParamRef = delParam;
    }
Page_prerender(){
//some code here...

}

并在用户控件cs页面中添加以下代码:

private System.Delegate _delNoParam;
    public Delegate PageMethodWithNoParamRef
    {
        set { _delNoParam = value; }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        _delNoParam.DynamicInvoke();
    }

当点击用户控制页中的Button1时,将触发aspx页中的Page_prerender(),即父页。