1

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

MakeRedemption.aspx 中有 Page_Prerender()。

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

如下所示:

实际上,我的用户控制页面中的一项功能存在循环。

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

我想要的是:每次在循环的每个项目结束之前,我都会触发 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# 的新手。

好心提醒。

谢谢。

4

1 回答 1

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()。

于 2013-06-21T02:06:58.080 回答