管理和控制回发优先权

时间:2015-11-06 17:01:55

标签: c# asp.net user-controls postback

我有一个包含数据过滤器和报告的网页。数据过滤器是一个用户控件。报告加载到主页面内,所以我总共有两页。一个用户控件和一个网页。 现在我将通过单击用户控件内部的按钮来收集数据然后我可以使用它来过滤表,但似乎在回发期间它首先进入main的Page_Load方法,而不是用户控件所以在过滤之前构造报告.BtnPreviewReport_Click必须早于page_Load执行。 我该怎么办 ?

用户控制

   protected void BtnPreviewReport_Click(object sender, EventArgs e)
        {
            Date = Year.Text + "/" + Month.Text + "/" + Day.Text;          

        }

主页

 protected void Page_Load(object sender, EventArgs e)
        {

                string date = UserControls1.Date;
                Response.Write(date);
        }

输出:没有

1 个答案:

答案 0 :(得分:0)

我不确定为什么ButtonClick事件应该早于页面加载运行。 但这是解决问题的简单方法:

private bool isPageLoaded = false;
private bool isButtonClicked = false;


private void ButtonClick()
{
    isButtonClicked = true;
    doTheFirstThing();
    if( isPageLoaded )
    {
        doTheSecondThing();
    }
}

private void PageLoad()
{
    isPageLoaded = true;
    if( isButtonClicked )
    {
        doTheSecondThing();
    }
    // else let the button click handle the SecondThing()
}