2009-07-13 3 views
0

GridView와 DetailsView가 모두 UpdatePanels에있는 마스터/세부 설정이 있습니다. DetailsView를 편집하고 업데이트 할 때 GridView에 이러한 변경 내용을 반영하고 싶지만 해당 데이터를 다시 바인딩하지 않아도됩니다 (selectedItem의 정렬 순서가 변경 될 수 있음). DetailsView ItemUpdated에서 다음 항목이 있습니다.GridView 행 정보가 selectedIndexChanged 후에 사라짐

' Update Gridview ' 
    ProductsGridView.Rows(selectedIndex).Cells(1).Text = e.NewValues("ProductName") 
    ProductsGridView.Rows(selectedIndex).Cells(2).Text = e.NewValues("Category") 

업데이트 할 때 제대로 작동하지만 Gridview에서 새 항목을 선택하면 업데이트 된 텍스트가 사라집니다. 왜 그런가요? 어떻게 그 정보를 보관할 수 있습니까? 리바운드 상태 일 때 위치가 바뀌면 괜찮습니다. 다시 바운드 될 때까지 놓으십시오. 데이터를 유지하고 싶습니다. 감사.

답변

1

답변 : 셀의 텍스트가 viewstate에 저장되지 않았기 때문입니다. 나는 리터럴 셀의 텍스트를 유지하고 업데이트의 리터럴 텍스트를 따라 대신 셀의 텍스트를 사용하여,과 같이 컨트롤을 추가 :

 ' Update Gridview ' 
    CType(ProductsGridView.Rows(selectedIndex).FindControl("thisLit"), Literal).Text = e.NewValues("SomeValue") 
    CType(ProductsGridView.Rows(selectedIndex).FindControl("someOtherLit"), Literal).Text = e.NewValues("OtherValue")) 

정보는 지금 viewstate가 보관하고 완벽하게 작동합니다 =)