2011-08-11 5 views
2

여러 페이지가있는 gridview의 확인란에서 포스트 백 때 정보를 얻으려고합니다. 한 페이지 분의 데이터 만있을 때 제대로 작동하지만 페이징 확인란을 사용하면 다른 페이지로 이동할 때 어떤 페이지에 있더라도 항상 false를 반환합니다. 그래서 예를 들어 내 애플 리케이션에서 나는 페이지 2 링크를 클릭하고 해당 페이지의 체크 박스를 선택한 다음 다시 게시했다. 내 처리기에서 나는 모든 행을 반복하고 이와 같이 확인합니다.페이징을 사용하는 동안 gridview의 컨트롤에 액세스

그래서 원하는 정보는 2 페이지 (1 행)의 1 행에 있습니다. 그러나 체크 박스는 확인되지 않습니다.

? grdView.Rows.Count 5 
? grdView.PageCount 2 
? grdView.PageSize 5 

을 그래서 심지어는 페이지 당 5 행과 2 페이지가 그것보다 그 5 개 행을 볼 수 없습니다 알고 있지만 : 여기 내 gridview에보고되는 것입니다. 또한 pageindex를 0 (첫 번째 페이지)으로보고합니다. PageIndex를 1 (두 번째 페이지)로 설정하면 두 번째 페이지에는 단 하나의 행만 있더라도 grdView.Rows.Count = 5로 설정됩니다.

페이지 번호를 두 번째 페이지로 설정 했음에도 불구하고 첫 번째 페이지와 동일한 반환 값을 얻습니다. 첫 번째 페이지가 아닌 다른 페이지에서 무엇을 얻을 수 있는지 알 수 없습니다.

나는 이것을 봤지만 놀랍게도 데이터를 얻기 위해 일반적으로 사용되는 것으로 보이는 답변을 찾지 못했습니다. 이것은 C# 섹션에서 답이없는 질문의 재 게시판이지만 새로운 게시물로 대답을 찾을 수 있을지도 모른다고 생각했습니다.

확인란 필드를보고 번호 매기기 문제를 발견했습니다. 예를 들어 페이지 2에는 하나의 행이 있고 확인란의 ID는 .... $ ctl02 $ ... 그러나 루프의 확인란을 쿼리하면 UniqueID가 .... $ ctl11 $와 같이 나타납니다. 그래서 분명히 그들은 거짓으로 돌아가고 있습니다. 그러나 페이지에 표시되는 ID와 함께 Request.Item을하면 체크 박스가 나타납니다. UniqueID를 사용하면 체크 박스에 아무것도 표시되지 않으므로 모든 체크 상자의 체크 된 속성은 false입니다.

도움을 주시면 감사하겠습니다. 당신은 데이터 바인딩하는 경우

grid.DataSource = something 
grid.DataBind() 

, 데이터의 현재 페이지의 가치가 그리드, 아무것도 더에 바인딩 : 처음에의 GridView에 데이터를 설정

+0

몇 가지 코드를 보여주고 좀 더 설명해 주실 수 있습니까? 왜 그리드 뷰를 사용하는 동안 누구도 현재 페이지에서 아무 것도 액세스 할 수 없다는 것을 알지 못합니다. – naveen

+0

확인 - 위의 루프를 사용하고 있습니다. 확인란을 선택하면 데이터베이스에있는 레코드의 GUID ID가있는 숨겨진 필드가 나타납니다. 그러나 페이지를 전환 할 때 모든 체크 박스는 false를 반환합니다. 체크 박스의 UniqueID가 올바르지 않은 것으로 보이는 방법에 대한 자세한 정보 위에 삽입했습니다. – netwisedev

+0

거기에 나타나지 않기 때문에이 해결 방법에 대한 해결 방법은 Javascript를 사용하여 페이지의 컨트롤을 반복하여 유효한 정보를 얻는 것입니다. document.getElementsByTagName ("input"); (oCheckbox.id.indexOf (sFieldID)> 0) 확인란을 선택하고 행을 찾은 다음 내 포스트 백에서 Request.Form.Item()을 사용하여 행의 다른 정보를 가져옵니다. 이것은 꽤 아니지만 정보를 가져옵니다. – netwisedev

답변

0

, 당신은 아마 이런 일을했다. 다른 페이지의 데이터에 액세스하려면 데이터 소스를 재설정하고 데이터를 리 바인드해야합니다.

데이터의 두 번째 페이지가 그리드에 바인딩되지 않았기 때문에 현재 페이지를 2로 설정하면 도움이되지 않습니다.

+0

감사합니다 -하지만 이것은 데이터 바인딩 문제가 아니며, 다시 게시하는 동안 데이터를 가져 오는 것을 말합니다. 페이지를 올바르게 설정하면 p가 표시됩니다.2를 하나의 레코드와 함께 선택하고 상자를 체크하고 버튼을 클릭하여 포스트 백을하십시오. 지금 나는 어떤 체크 박스가 체크되었는지를 결정하려고 노력하고 있는데, 그들 중 누구도 체크 속성이 참으로 설정되어 있지 않습니다. 위의 모든 정보는 내 포스트 백 처리기를 다루고 있습니다. – netwisedev

관련 문제