포스트 백 후에 채워지면 GridView의 행을 반복하는 데 어려움을 겪고 있습니다..NET GridView 행이 포스트 백에서 null입니다.
요약하면 GridView 내에 표시되어야하는 데이터를 결정하는 두 개의 드롭 다운 목록이 있습니다. 페이지는 처음에는이 단계에서는 GridView가없는 두 개의 드롭 다운 목록만으로로드됩니다. 드롭 다운에서 값을 선택한 후 사용자는 버튼을 통해 페이지를 제출합니다. 그런 다음 코드를 사용하여 db를 호출하여 데이터를 검색하고이를 GridView에 바인딩합니다. 나는이 일을 할 수 있었다!
문제는 GridView에 사용자가 itemtemplate에있는 텍스트 상자 내의 값을 편집 할 수있는 하나의 열이 있다는 것입니다. 사용자가 텍스트 상자의 값을 변경하고 페이지를 제출하면 GridView의 행을 반복 할 때 반복 할 행이 없다는 메시지가 나타납니다. 프론트 엔드에서 사용할 수있는 행과 데이터를 볼 때 왜 이런 일이 발생하는지 혼란 스럽습니다.
그러나 사용자가 드롭 다운을 선택하고 GridView가 초기 page_load에 채워지는 단계를 제거하면 실제로 행을 반복 할 수 있습니다.
GridView가 버튼 클릭 이벤트 내에서 바인딩 된 경우 ViewState가 포스트 백간에 행 수를 유지하지 않는 것과 같습니다.
누군가 나에게 설명 할 수 있습니까?
여기 VB.NET의 코드입니다 :
Protected Sub Me_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles Me.Load
End Sub
Protected Sub BtnGetData_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles BtnGetData.Click
Dim ddlFirstValue As Integer = DropDownListOne.SelectedValue
Dim ddlSecondValue As Integer = DropDownListSecond.SelectedValue
MyGridView.DataSource = GetData(ddlFirstValue, ddlSecondValue)
MyGridView.DataBind()
End Sub
Protected Sub BtnSubmit_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles BtnSubmit.Click
For Each row As GridViewRow In MyGridView.Rows 'this returning 0 rows
'Do something
Next
End Sub
당신이 무엇을 요구하고 있는지 100 % 확신하지 못합니다. 따라서 버튼을 클릭하여 그리드 뷰를 채운 다음 다른 버튼을 클릭하여 변경 사항을 제출하십시오. 하지만 제출할 때 행이 없습니다. – Cruril
예, 바로 행이 없습니다. GridView.Rows를 반복 할 때 0 행이 반환됩니다. – creativeincode