在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();
}