在usercontrol中单击按钮时刷新页面数据

时间:2012-07-18 12:32:23

标签: c# asp.net

我有一个显示来自Web服务的数据的页面。它首先检查会话中是否存在数据,然后从WS中获取数据。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

}

答案 1 :(得分:0)

我最终在绑定PreRender事件处理程序中的数据时做了些什么。这样我在click事件处理程序中引发了标志,并且由于PreRender发生在click事件处理程序之后,我可以检查是否引发了该标志,并采取相应的行动。