GridView
에 BoundFields
과 2 개의 TemplateFields
이 있습니다. 이 두 개의 TemplateFields
에서는 사용자가 수정할 수있는 DropDownList
및 TextBox
을 포함하는 UserControls
을 동적으로 만듭니다.포스트 백 이후에 동적 열이 사라짐
PostBack
뒤에 컨트롤의 값을 가져 오려고하면 BoundFields
의 값은 그대로 있지만 동적 컨트롤이 사라집니다. 다시 만들 수는 있지만 사용자의 가치를 얻지는 못할 것입니다 ... 손실되기 전에 어떻게이 값을 얻을 수 있습니까? RowDataBound
이벤트에서
: 내 버튼 클릭 이벤트에서
Select Case type
Case "BooleanBis"
e.Row.Cells(2).Controls.Clear()
Dim list1 As BooleanBisList = New BooleanBisList(avant, False)
e.Row.Cells(2).Controls.Add(list1)
e.Row.Cells(4).Controls.Clear()
Dim list2 As BooleanBisList = New BooleanBisList(apres, True)
e.Row.Cells(4).Controls.Add(list2)
Case "Boolean"
e.Row.Cells(2).Controls.Clear()
Dim list3 As BooleanList = New BooleanList(avant, False)
e.Row.Cells(2).Controls.Add(list3)
e.Row.Cells(4).Controls.Clear()
Dim list4 As BooleanList = New BooleanList(apres, True)
e.Row.Cells(4).Controls.Add(list4)
End Select
, 나는 사용자 정의 컨트롤을 얻으려고 :
여기 내 코드의 일부이다
Case "String"
temp.ChampValeurApres = DirectCast(Tableau1.Rows(i).Cells(selectedColumn).Controls(1), TextBox).Text
을하지만, 나는 그것이 존재하지 않는다는 오류를 얻는다. 이 이벤트는 DataSource
을의에 GridView
가 데이터 바인딩 될때 RowDataBound
만 발생하는 반면 모든 포스트 백에 트리거됩니다 때문에
대단히 감사합니다! 난 여전히 문제가있다, 난 읽기 전용 컨트롤과 열이있다. 이러한 컨트롤의 값은 다시 게시 후에 검색되지 않습니다. 어떤 생각? – user874854
@ user874854 :'readonly' 컨트롤은 ViewState의 클라이언트 측에서 변경을 유지하지 않습니다 (서버 측에서만 변경 가능). [Attributes] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.attributes.aspx) -collection을 통해 읽기 전용으로 만듭니다 (예 :'TextBox1.Attributes .Add ("readonly", "readonly");'. 이런 식으로 ASP.NET을 속일 수 있습니다. 추가 정보는 [here] (http://www.codeproject.com/KB/aspnet/Readonly.aspx)를보십시오. –