从UserControl页面,在Parent页面中调用Page_Prerender

时间:2013-06-17 02:38:56

标签: c# user-controls parent prerender

我有一个aspx页面名称MakeRedemption.aspx,其中有一个UserControl(Search.ascx)。

MakeRedemption.aspx中有Page_Prerender()。

我想问一下,如何通过Search.ascx中的函数从MakeRedemption.aspx调用Page_Prerender()。

具体如下:

实际上,我的“用户控制”页面中的某个功能中存在循环。

Page_Prerender(MakeRedemption.aspx)将在完成所有循环后触发。

我想要的是: 每次在循环的每个itme结束之前,我都想触发MakeRedemption.aspx上的Page_Prerender来做某事。
类似的东西:

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#的新手。

请告知。

感谢。

1 个答案:

答案 0 :(得分:0)

最后我找到了办法,oodng如下: 在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(),即父页面。