2011-04-24 39 views
1

我有一個分層結構,當用戶按添加一個孩子時,我用[Add,ParentID]參數重新打開同一頁面。如何僅在第一次閱讀查詢字符串?

問題在於,在按下Add之後,會發出回傳,並且查詢字符串的讀數會再次發生,因爲查詢字符串仍然是相同的,並且我會在頁面負載中處理該查詢字符串&。

注意:我不能使用IsPostBack因爲主叫是從同一個頁面,所以它總是true

任何幫助!

回答

3

確保只處理查詢字符串時,該頁面還沒有被調回,通過使用PageIsPostBack屬性:在頁面加載事件

if(!IsPostBack) 
{ 
    //Process query string 
} 
+0

謝謝,我編輯了我的問題,我不能使用'IsPostBack' – Homam 2011-04-24 08:47:07

+0

@Jack - 如果您稱爲「 Response.Redirect','IsPostBack'將是錯誤的。 – Oded 2011-04-24 08:52:09

+0

非常感謝。我沒有使用'Response.Redirect'。我正在使用'PostBackURl',並沒有進行回發。現在,一切都好。謝謝。 – Homam 2011-04-24 08:58:31

1
在頁面加載事件或對您按鈕

點擊補充一點:

If Not IsPostBack Then 
     'your code here 
    End If 

C#

if (!IsPostBack) { 
//your code here 

}

使用會話

if (Session("ok") == 0) { 
//some code 
Session("ok") = 1;} 

這將執行您的僅在第一次加載時查詢! !

+0

這也是在VB.NET中,問題標記爲c#。 – Oded 2011-04-24 08:44:29

+0

調用是從第一頁開始,所以'IsPostBack'總是爲真 – Homam 2011-04-24 08:45:19

+0

然後使用此會話 – HAJJAJ 2011-04-24 08:48:48

1
If (!Page.isPostBack) { 

//read your query string here 

} 
+0

謝謝,我編輯了我的問題,我不能使用'IsPostBack' – Homam 2011-04-24 08:47:24

1

添加這些代碼並查看它是否有效

if((!IsPostBack)& &(!IsCallBack)){
//一些代碼! }

0
if(!IsPostBack) 
{ 
    // Read the query string. 
}