2010-07-23 30 views
1

我已經創建了一個非常簡單的asp.net網頁來生成一些HTML。這個想法是每次用戶點擊按鈕時,先前的輸入被存儲到一個數組中,然後與最近的輸入一起列出。問題是,陣列重置每次點擊,我也做了相同的計數器(使用「i」作爲整數,每次點擊「i + = 1」。)Asp.net 4,陣列重置每次運行?

結果是,情況0每次都選擇,這當然不是計劃。

提供的是代碼。提前,謝謝。因爲它們不是頁面視圖狀態的一部分

Partial Class _Default 
Inherits System.Web.UI.Page 
Dim name, url, dive As String 
Dim i As Integer 
Dim rememberme(2) As String 

Protected Sub btn_readmetoo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_readmetoo.Click 
    name = txt_name.Text 
    url = txt_url.Text 

    If i = 3 Then 
     i = 0 
    End If 

    Select Case i 
     Case 0 
      rememberme(0) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p>" & rememberme(0) & "</p>" 
     Case 1 
      rememberme(1) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p><ul><li>" & rememberme(0) & "<li>" & rememberme(1) & "</ul></p>" 
     Case 2 
      rememberme(2) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p><ul><li>" & rememberme(0) & "<li>" & rememberme(1) & "<li>" & rememberme(2) & "</ul></p>" 
    End Select 

    i += 1 
    lbl_counter.Text = i 
End Sub 

回答

1

rememberme陣列復位。如果你想堅持的數組,那麼你可以使用下面的語法:

Protected Sub btn_readmetoo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_readmetoo.Click 
    name = txt_name.Text 
    url = txt_url.Text 

    If i = 3 Then 
     i = 0 
    End If 

    'recall array from ViewState 
    If ViewState("rememberme") IsNot Nothing Then 
     rememberme = ViewState("rememberme") 
    End If 

    Select Case i 
     Case 0 
      rememberme(0) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p>" & rememberme(0) & "</p>" 
     Case 1 
      rememberme(1) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p><ul><li>" & rememberme(0) & "<li>" & rememberme(1) & "</ul></p>" 
     Case 2 
      rememberme(2) = "Les også: " & "<a href=""" & url & """" & ">" & name & "</a>" 
      txt_listurls.Text = "<p><ul><li>" & rememberme(0) & "<li>" & rememberme(1) & "<li>" & rememberme(2) & "</ul></p>" 
    End Select 

    i += 1 
    lbl_counter.Text = i 

    'Store array in ViewState 
    ViewState("rememberme") = rememberme 
End Sub 
+0

非常感謝,這就像一個魅力:-) – 2010-07-23 13:34:44

0

是,每個頁面重新加載,代碼會從頭開始,從零開始創建一個新網頁的時間。

如果你想從一個頁面加載持續到另一個數據,基本上有兩種解決方案:

  1. 把數據頁面(隱藏字段,餅乾,et.c.),因此,它的當它請求下一頁時返回到服務器。

  2. 將數據放入Session變量中。