2017-10-18 3 views
0

페이지에 sqldatasource에 바인딩 된 gridview가 있습니다. gridview에서 편집을 허용하지 않습니다. 대부분의 열은 레이블 컨트롤이있는 템플릿 필드입니다. 같은 페이지에있는 formview 컨트롤은 현재 선택된 gridview 행에 대한 데이터를 보여줍니다. formview 컨트롤이 업데이트됩니다. Gridview를 저장 한 후 업데이트 된 데이터를 반영하도록합니다. 간단한 gv.DataBind()는 작동하지만 데이터 업데이트는 gridview의 정렬에 포함될 수 있습니다. 따라서 gv.DataBind()를 호출하면 gv의 업데이트 된 행이 그리드의 먼 페이지로 끝날 수 있습니다. gridview 단순히 이미 선택한 행의 변경된 데이터를 업데이트하는 것이 좋습니다.DataBind()를 통해 휴지를 호출하지 않고 데이터가 변경된 후 Gridview 행의 값을 업데이트합니다.

내가 지금까지 한 것은 formview를 업데이트하는 하위 항목을 사용하여 선택한 gv 행의 레이블 값을 변경하는 것입니다. 그것은 효과가있는 것처럼 보이지만 지속되지는 않습니다. gv 셀의 변경 내용이 표시되지만 gridview에서 다른 행을 선택하자마자 이전에 편집 된 행의 수정 된 셀이 왠지 비어있게됩니다.

어떻게해야할까요?

답변

0

Gridview (.PageIndex)의 현재 페이지를 가져 와서 DataBind()를 수행 한 다음 페이지를 다시 설정하십시오.

+0

"(다시) 페이지 설정"이란 무엇을 의미합니까? 현재 페이지를 얻으면 databind()를 실행하면 방금 편집 한 레코드가 업데이트 된 열과 그리드 정렬에 따라 완전히 다른 페이지로 끝날 수 있습니다. 너의 재 설정 한 것이 그 기록을 좋은 발견하는 것을 돕는 경우에. 하지만 실제로하고 싶은 것은 gridview에서 이동하지 않고 새 데이터를 표시하도록 업데이트 될 gridview의 한 행만 갖는 것입니다. 동일한 위치에서 업데이트 된 데이터로 유지하십시오. – meridian

+0

gridview의 페이지를 재설정하는 것을 의미합니다. '변수에 gridview의 현재 페이지 저장하기', 데이터 작업을해라. gridview가 1 페이지로 돌아 간다면 databind()를해라. 앞에서 변수에 저장했던 페이지로 gridview의 페이지를 설정한다. – wazz

+0

Formview 데이터 업데이트 후에 업데이트 된 레코드가 원래 있던 것과 동일한 gridview 페이지에 나타나지 않을 수 있기 때문에 문제가 해결되지 않습니다. 예를 들어 gridview가 성으로 정렬되고 formview update가 사람의 성을 Klunkedorf에서 Clunkendorf로 변경하면 데이터 바인딩 후 레코드가 다른 gv 페이지에있게됩니다. 따라서 단일 행의 텍스트 값을 업데이트하는 것에 대한 관심과 gv 리 바인딩이 아닙니다. – meridian