簡體   English   中英

簡單的按鈕動作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM