0

こんにちは、私の問題は、ページの読み込み後のグリッド ビューにあります。テキスト ボックスにいくつかの値を入力していますが、次のページを押すと、そのページの値が消えます。グリッド ビューに値を保存して取得するにはどうすればよいですか ..セッションに保存するにはどうすれば現在のページに貼り付けることができますか..

これが私のコードです。値に保存できますが、他のページを変更した後、同じページに再度入力すると、値を対応するページに貼り付けることができます..

Protected Sub Gridview1_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
    'Gridview1.PageIndex = e.NewPageIndex
    'SetInitialRow()

    Dim pageindex As Integer = Gridview1.PageIndex

    Response.Write(Gridview1.PageIndex.ToString())
    Dim d As Integer = Gridview1.PageCount
    Dim texts As String() = New String(Gridview1.PageSize - 1) {}
    Dim textBox As TextBox
    Dim count As Integer = 0

    For Each row As GridViewRow In Gridview1.Rows
        textBox = DirectCast(row.FindControl("TextBox1"), TextBox)
        If textBox IsNot Nothing Then
            texts(count) = textBox.Text
        Else
            texts(count) = ""
        End If
        count += 1
    Next

    Session("one" + "pageindex") = texts
    Gridview1.PageIndex= e.NewPageIndex
    SetInitialRow()

    'Dim sessionint As Integer = Session("page" + "pageindex")
    'If Session("page" + "pageindex") IsNot Nothing Then
    '    Dim textBox1 As TextBox
    '    Dim texts1 As String() = DirectCast(Session("page" + "pageindex"), String())
    '    For i As Integer = 0 To Gridview1.Rows.Count - 1
    '        textBox1 = DirectCast(Gridview1.Rows(i).FindControl("textbox"), TextBox)
    '        textBox1.Text = texts(i)
    '    Next
    'End If
End Sub
4

1 に答える 1

0

gridview にバインドするデータソースは何ですか?

これらは私が行ってきた2つの方法です...

  • データ テーブル全体を取得し、ViewState("dataTable")に入れます。そこから行とデータのフィルタリングを行います。

「次のページ」を押すたびに、行を ViewState("dataTable")に更新します。

次に、GridView を ViewState("dataTable") に再バインドします。

  • 「次のページ」を押すと、データベースを直接更新します。
于 2013-09-04T08:36:32.943 に答える