C#, .NET 3.5를 사용하고 있습니다. 동적으로 바인딩 된 DataSource가있는 GridView 컨트롤이 있고 Page_Load 이벤트 처리기에서 PageSize를 동적으로 설정합니다. AllowPaging = true로 설정했습니다. GridView 페이징이 정상적으로 작동하지만 페이지가 처음로드 될 때 Page_Load의 페이지 크기 설정이 적용되지 않습니다. 처음 페이지가로드되면 설정 한 GridView.PageSize 속성과 관계없이 항상 10 개의 행이 표시됩니다 (5, 15 등). 첫 번째 시간 (페이지 다시 게시) 후에 페이지 크기가 적용되고 모든 것이 예상대로 작동합니다.첫 번째 페이지에서 GridView.PageSize가 기본값 10으로 설정됩니다.
페이지 크기는 appsettings 아래 web.Config 파일에서 얻은 마스터 페이지의 속성입니다.
그리드 뷰의 페이지 크기가 처음으로 적용되지 않는 이유가 확실하지 않습니다. Page_Load 이외의 다른 이벤트에서 페이지 크기를 설정해야합니까? 또한, 나는 그것의 포스트 백이라 할지라도 항상 그것을 설정하고있다. 내부 웹 서버를 사용하여 페이지를 실행 중입니다. 어떤 생각이 일어나고 있니?
뒤에 코드 (GridView1.AllowPaging = aspx 페이지에 참) :
protected void Page_Load(object sender, System.EventArgs e)
{
DataView dvMembers = GetMembers;
GridView1.DataSource = dvMembers;
GridView1.PageSize = Master.GridViewSize;
}
마스터 페이지 속성 : 자녀 페이지의 PageLoad 이벤트의 PageLoad 이벤트 전에이라고
public int GridViewSize
{
get { return Convert.ToInt32
(ConfigurationManager.AppSettings ["memberDataGridPageSize"]); }
}
Master.GridViewSize는 마스터 페이지의 속성이며 Page_Load 이벤트에서 설정되지 않습니다. Page_Load 이벤트 처리기에서 값을보기 위해 콘텐츠 페이지를 디버깅 할 때 이미 설정되어 있습니다. 그래서 나는 그게 문제라고 생각하지 않는다. 그리드 페이지 크기를 어떤 이벤트로 설정해야한다고 생각합니까? – Pritika
처음으로 값을 설정하면 문제가되지 않습니다. PageSize를 하드 코딩하면 어떻게됩니까? –
또한 GridView1.DataBind() 또는 Page.DataBind()를 호출하는 위치는 어디입니까? –