2013-06-10 2 views
2

목록에서 만든 그리드 뷰에서 페이지 인덱싱을 활성화하려고합니다. 나는이 페이지에 대한 페이징 인덱싱을 가능하게하고 싶었 때문에GridView에서 데이터 소스로 목록이있는 페이지 인덱싱 사용

SearchResults result= new SearchResults();// Class Variable  
Void Search() 
{ 

result.fname="John"; 
result.mmane="Cody"; 
result.lmane="lname"; 
SearchResults.Add(result); 
Gridview1.DataSource=result; 
Gridview1.DataBnd(); 
} 

내가 이벤트를 생성 :이 목록 GridViewfrom에 다음과 같은 방법으로 데이터를 추가

public class SearchResults 
    { 
     public string fname { get; set; } 
     public string mname { get; set; } 
     public string lname { get; set; } 

    } 

아래처럼

목록이 보이는 그 코드는 다음과 같습니다.

protected void On_PageIndexChanging(Object sender, GridViewPageEventArgs e) 
    { 

     GridView1.PageIndex = e.NewPageIndex; 
     Gridview1.DataSource=result; 
     Gridview1.DataBnd(); 


    } 

그리드를 바인딩 한 후에도 페이지 인덱스 이벤트가 작동하지 않습니다.

어떤 일이 벌어지고 있는지 알 수 있습니까? 누군가가 그리드보기 페이지 인덱싱에 목록 결과를 바인딩하는 방법을 설명 할 수 있습니까?

감사합니다.

+0

모든 변수는 페이지 수명주기의 마지막에 처리됩니다. 페이징 (또는 정렬 등) 후에 데이터 소스를 다시로드해야합니다. 또 다른 옵션은'Session' 변수에 저장하는 것입니다. 그러나, 나는 웹 애플 리케이션이 소수의 인트라넷 애플리케이션 인 경우에만이 방법을 사용합니다. –

+0

색인을 변경하면 페이지를 새로 고침해야합니까? 내 코드 예제를 줄 수 있습니까? – Huzaifa

답변

0

당신은 다음과 같은 코드를 사용할 수 있습니다

public class SearchResults 
{ 
    public string fname { get; set; } 
    public string mname { get; set; } 
    public string lname { get; set; } 
} 

가에서 .aspx 페이지에서이 같은 마크 업을 설정

<asp:GridView runat="server" ID="Gridview1" AllowPaging="True" OnPageIndexChanging="PageIndexChanging" PageSize="4"> 
    </asp:GridView> 

쓰기 뒤에 코드에서 다음 코드 (.aspx.cs) :

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
     // Get list of search and bind data with Grid 
     this.Search(); 
     } 
    } 

    private void Search() 
    { 
     var searchResults = new List<SearchResults>(); 
     var search = new SearchResults { fname = "John" }; 
     searchResults.Add(search); 
     search = new SearchResults { fname = "John2" }; 
     searchResults.Add(search); 

     search = new SearchResults {fname = "Micheal" }; 
     searchResults.Add(search); 

     search = new SearchResults { fname = "Sara" }; 
     searchResults.Add(search); 

     search = new SearchResults { fname = "Jenne" }; 
     searchResults.Add(search); 

     search = new SearchResults { fname = "Mac" }; 
     searchResults.Add(search); 

     this.Gridview1.DataSource = searchResults; 
     this.Gridview1.DataBind(); 
    } 

    protected void PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     this.Gridview1.PageIndex = e.NewPageIndex; 
     this.Search(); 
    } 
관련 문제