在usercontrol内点击按钮时刷新页面数据

问题描述:

我有一个显示来自Web服务的数据的页面。它首先检查数据是否存在于会话中,如果没有,则从WS中获取数据。在usercontrol内点击按钮时刷新页面数据

我的控件调用Web服务并向数据添加另一行(本例中为SP列表)。如果新项目添加成功,我想刷新会话中的列表。如果不是,则不需要刷新。

即使数据存在于会话中,我也希望页面从Web服务获取新数据。 我的问题是,该按钮的事件处理程序在包含该控件的页面加载事件后触发,其中数据被检索并绑定到中继器。

我正在考虑使用一些客户端技巧,如检查事件目标或检查后params列表中的按钮名称,但我的按钮是服务器端控件,我希望它保持这种方式。

这种情况是否有一些最佳实践解决方案?

我结束了在PreRender事件处理程序绑定数据做什么。这样我在click事件处理程序中提升标志,并且由于PreRender发生在click事件处理程序后,我可以检查标志是否被引发,并相应地采取行动。

void Page_Load() 
{ 
    if(!Page.IsPostBack) 
    { 
     //call initial databind functions 
     MyDataBindStuff(); 
    } 
    else 
    { 
     //this is a postback, you may or may not want to do anyting 
    } 
} 

private void MyDataBindStuff() 
{ 
    //do databind work 
} 


void yourBtn_Click(Object sender, EventArgs e) 
{ 
    //do work 
    //now databind if needed after do work 
    MyDataBindStuff(); 

}