검색 사용자 버튼 버튼을 선택하면 모달 팝업 익스텐더가 표시되고 사용자가 모든 직원을 검색 할 수 있습니다. 값을 선택하면 선택한 값이 상위 폼에 전달되어야합니다. 또 다른 gridview.DataView를 DataTable로 변환
이제 dataview를 datatable로 변환하는 코드가 있습니다. 디버깅 할 때 인덱스의 값이 (idx)로 전달되지 않습니다.
Dim RowIndex As Integer = gvUser.EditIndex
Dim dt As New DataTable
dt = TryCast(Session("dbCache_User"), DataView).Table.Clone
Dim dv As New DataView(dt, "", "USR_IDNTY", DataViewRowState.OriginalRows)
Dim s As String = TryCast(gvUser.Rows(RowIndex).FindControl("lblUSR_IDNTY"), Label).Text
Dim idx As Integer = dv.Find(s)
dv(idx)("USR_ID") = row.Cells(1).Text
dv(idx)("NAME") = row.Cells(2).Text
gvUser.DataSource = dv
gvUser.DataBind()
디버그를하려고 할 때. 인덱스 4로 한 행을 검색하려고합니다. (s)의 값은 4이지만 (idx)로 전달할 때는 -1입니다.
값을 찾아야합니다.
나는 여기에서 새로운데 이미 사본을 사용하고 있으며 이제는 0을 반환합니다. – Yinah
-1은 일치하지 않음을 의미합니다. 다른 것은 해당 색인에서 일치하는 것이 발견되었음을 의미합니다. 'Find'가 0을 반환하면 첫 번째 행에서 일치가 발견되었음을 의미합니다. 그것이 다른 행이어야한다고 생각한다면 틀린 것입니다. 당신의 기대가 잘못되었거나 당신이 뭔가 잘못하고 있습니다. 우리는 당신의 데이터가 없기 때문에 우리는 그것을 도울 수 없습니다. – jmcilhinney
그래서 이제는 데이터가 일치하고 전달되었지만 데이터 예외가 처리되지 않았습니다. dv (idx) ("NAME") = row.Cells (2). 텍스트 – Yinah