![](/img/trans.png)
[英]<asp:Button> not work properly : the action effect not run every once i press the button with my simple search?
[英]Simple button action
我正在使用下面的代碼來確定頁面是否應顯示圖像。 該按鈕有時會“起作用”,但有時需要點擊2或3次才能顯示圖像。
我想念什么嗎?
Private Sub btnViewAll_Click(sender As Object, e As System.EventArgs) Handles btnViewAll.Click
If Session("fullPage") IsNot Nothing Then
If CInt(Session("fullPage")) = 0 Then
Session("fullPage") = 1
Else
Session("fullPage") = 0
End If
Else
Session("fullPage") = 1
End If
End Sub
我在這里檢查會話:
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvFolders.RowDataBound
If CInt(Session("fullPage")) = 1 Then
...load images....
End If
End Sub
我的猜測是您要在引用它之后設置Session變量。
例如,如果您正在使用Page_Load中的變量,則在第一次單擊時,默認情況下該值為False
(使您不渲染圖像)。 Page_Load事件完成后,將觸發click事件處理程序,將會話變量設置為True
。 但是,由於Page_Load已經完成,因此直到再次調用Page_Load之后(在第二次回發中),您才能看到圖像。
這只是當您不密切關注頁面生命周期時可能發生的情況的一個示例。 由於我們看不到您的代碼,因此無法確切知道發生邏輯錯誤的位置。
有關事件順序的更多信息,請參見ASP.NET頁面生命周期 。
編輯
您可能需要將某些邏輯從Page_Load移到Page_LoadComplete事件。 在處理完控制事件之后,LoadComplete通常是進行數據綁定等的最佳位置。
為了在下面的評論中回答您的問題,會話處理實際上在適當的位置。 我看不到您在哪里調用GridView1.DataBind()
,但是很可能是該代碼不在正確的位置。 將DataBind
調用移至LoadComplete頁面事件,就應該設置好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.