1

我有一个页面显示来自网络服务的数据。它首先检查数据是否存在于会话中,如果不存在则从 WS 获取。

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

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

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

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

4

2 回答 2

0

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

于 2012-07-21T08:47:30.780 回答
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();

}
于 2012-07-18T12:37:33.840 回答