0
디자인 타임에 페이지에 배치 된 웹 사용자 정의 컨트롤을 만들었습니다. 사용자가 선택할 수있는 항목의 격자로 팝업하는 것이 목적입니다. 그리드 뷰가 있습니다. 그리고 UserControl을이 코드는 :데이터 집합 수동으로 포스트 백 후 웹 사용자 정의 컨트롤의 viewstate 보관되지 않는다
SelectGrid2.DataTable = GetContacts().Tables(0)
SelectGrid2.Show()
을 그리고 이것은 잘 작동 :
Public Property DataTable() As Data.DataTable
Get
If Not IsNothing(ViewState("_SelectGridDataTable")) Then
Return ViewState("_SelectGridDataTable")
Else
Return Nothing
End If
End Get
Set(ByVal value As Data.DataTable)
ViewState("_SelectGridDataTable") = value
End Set
End Property
사용자가 페이지에서 버튼을 클릭 그래서
, 나는 페이지의 코드에 넣고. 그리드가 나타납니다 (jQuery 사용) 그리드가 표시됩니다. 문제는 사용자가 UserControl에서 "OK"버튼을 클릭하면 ViewState ("_ SelectGridDataTable")는 항상 아무 것도 없음입니다. 뷰 스테이트에 있기 때문에 나는 그것을 얻지 못한다. ..?!? 그래서 여기 viewstate는 정말로 viewstate를 의미하지 않습니까?
페이지 수명주기에서 당신은이 속성을 부르시겠습니까? –
페이지가 이미로드되었습니다. 사용자가 버튼 (업데이트 패널에 있음)을 클릭합니다. 그런 다음 "SelectGrid2.DataTable, SelectGrid2.Show()"명령을 실행합니다. – Dan
ViewState에 DataSets/DataTable을 저장하면 페이지 성능이 저하 될 수 있습니다. 가능한 경우 Session을 사용하여 DataSet을 저장하는 것을 고려해야합니다. 이유에 대해 더 잘 이해하려면 다음을 참조하십시오. http://www.dotnetjohn.com/articles.aspx?articleid=71 – Jagd