2013-10-03 4 views
0

나중에 사용하려면 page_load에 데이터 테이블을 채우고 있습니다.ASP.net - 데이터 테이블이 포스트 백이 아님

Public serviceTable as Datatable 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      If IsPostBack = False Then 
       GetData() 
      End If 
End Sub 


Private Sub getData() 
     Dim cmd As SqlCommand 
     Dim ds As New DataSet 
     Dim da As SqlDataAdapter 
     Try 
      cmd = New SqlCommand(("dbo.getListofServices"), cn) 
      cmd.CommandType = CommandType.StoredProcedure 
      da = New SqlDataAdapter(cmd) 
      da.Fill(ds) 
      ServiceTable = ds.Tables(0) 
     Catch ex As SqlClient.SqlException 
      MsgBox(ex.ToString) 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     Finally 
      If (IsNothing(da) = False) Then da.Dispose() 
      If (IsNothing(cmd) = False) Then cmd.Dispose() 
     End Try 
End Sub 

는 나중에 내가 가 ServiceTable는 객체를 참조하지 않습니다라는 오류가 발생하고

Protected Sub btnView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnView.Click Try If ServiceTable.Rows.Count = 0 Then Exit Sub Repeater1.DataSource = ServiceTable Repeater1.DataBind() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub 

Button_Click

에 serviceTable를 사용하고 싶습니다.
다시 게시 할 때 데이터 테이블이 비어질 수 있습니까? 해결 방법?

답변

0

서비스 테이블 선언하면서 다음과 같은 성명을 사용하여 포스트 돌아 가기 후이 도움이

Public serviceTable as New DataTable() 

희망 ..

If Not (Session("MyData") Is Nothing) Then 
Session("MyData")=Servicetable 

을, 세션 변수에서 설정 저장된 데이터를 retieve

예 :

ServiceTable= = (DataTable)Session["MyData"]; 

희망이 도움이됩니다.

+0

오류가 더 이상 ** Servicetable이 객체 **를 참조하지 않고 대신 포스트 백 ** Servicetable.rows.count가 0 ** – HelpASisterOut

+0

을 반환합니다. 포스트 백간에 값이 유지되지 않습니다. .so.you는 세션 변수를 사용해야합니다. –