2012-07-18 131 views
1

我有一個顯示來自Web服務的數據的頁面。它首先檢查數據是否存在於會話中,如果沒有,則從WS中獲取數據。在usercontrol內點擊按鈕時刷新頁面數據

我的控件調用Web服務並向數據添加另一行(本例中爲SP列表)。如果新項目添加成功,我想刷新會話中的列表。如果不是,則不需要刷新。

即使數據存在於會話中,我也希望頁面從Web服務獲取新數據。 我的問題是,該按鈕的事件處理程序在包含該控件的頁面加載事件後觸發,其中數據被檢索並綁定到中繼器。

我正在考慮使用一些客戶端技巧,如檢查事件目標或檢查後params列表中的按鈕名稱,但我的按鈕是服務器端控件,我希望它保持這種方式。

這種情況是否有一些最佳實踐解決方案?

回答

0

我結束了在PreRender事件處理程序綁定數據做什麼。這樣我在click事件處理程序中提升標誌,並且由於PreRender發生在click事件處理程序後,我可以檢查標誌是否被引發,並相應地採取行動。

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

}