2013-02-08 84 views
1

當我單擊頁面時,分頁不工作。沒有顯示。下面是代碼,在可視Web部件中的SPGridView中分頁不起作用

標記我ASCX形式,

<div class="mGrid"> 
<SharePoint:SPGridView 
    runat="server" 
    ID="gdSharedReport" 
    AutoGenerateColumns="false" 
    CssClass="mGrid" 
    AllowPaging="true" 
    PagerStyle-CssClass="pgr" 
    AlternatingRowStyle-CssClass="alt" 
    EmptyDataText="No Survey found." 
    OnSorting="gdSharedReport_Sorting" 
    OnPageIndexChanging="gdSharedReport_PageIndexChanging" 
/> 
</div> 

代碼我ascx.cs,

 public DataView dv; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       GenerateGrid(); 
      } 

     } 
     private DataTable BindData() 
     { 
     DataTable table; 

     table = new DataTable(); 

     table.Columns.Add("SurveySet", typeof(string)); 
     table.Columns.Add("SurveySection", typeof(string)); 
     table.Columns.Add("SurveyQuestion", typeof(string)); 
     table.Columns.Add("Employee", typeof(string)); 
     table.Columns.Add("Supervisor", typeof(string)); 
     table.Columns.Add("EmployeeNumber", typeof(string)); 
     table.Columns.Add("SurveyDate", typeof(string)); 

     DataRow row; 

     try 
     { 
      SPListItemCollection collListItems = list.GetItems(oQuery); 

      row = table.NewRow(); 
      //Logic here to set rows 
      table.Rows.Add(row); 
     } 
     catch(Exception ex){} 

     return table; 
     } 
     private void GenerateGrid() 
    { 
     DataTable dt = BindData(); 
     dv = new DataView(dt); 
     gdSharedReport.DataSource = dv; 

     gdSharedReport.AutoGenerateColumns = false; 
     gdSharedReport.AllowSorting = true; 
     gdSharedReport.Sorting += new GridViewSortEventHandler(gdSharedReport_Sorting); 

     //Setting bound fields here 


     gdSharedReport.PageSize = 10; 
     gdSharedReport.AllowPaging = true; 
     gdSharedReport.PageIndexChanging += 
      new GridViewPageEventHandler(gdSharedReport_PageIndexChanging); 
     gdSharedReport.PagerTemplate = null; 


     if (ViewState["SortDirection"] != null && ViewState["SortExpression"] != null) 
     { 
      dv.Sort = ViewState["SortExpression"].ToString() 
       + " " + ViewState["SortDirection"].ToString(); 
     } 

     gdSharedReport.DataBind(); 

    } 

    public void gdSharedReport_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     gdSharedReport.PageIndex = e.NewPageIndex; 
     gdSharedReport.DataBind(); 
    } 

    public void gdSharedReport_Sorting(object sender, GridViewSortEventArgs e) 
    { 
     string lastExpression = ""; 
     if (ViewState["SortExpression"] != null) 
      lastExpression = ViewState["SortExpression"].ToString(); 

     string lastDirection = "asc"; 
     if (ViewState["SortDirection"] != null) 
      lastDirection = ViewState["SortDirection"].ToString(); 

     string newDirection = "asc"; 
     if (e.SortExpression == lastExpression) 
      newDirection = (lastDirection == "asc") ? "desc" : "asc"; 

     ViewState["SortExpression"] = e.SortExpression; 
     ViewState["SortDirection"] = newDirection; 

     dv.Sort = e.SortExpression + " " + newDirection; 
     gdSharedReport.DataBind(); 
    } 

以下是如何電網負荷,

enter image description here

下面是當我點擊網頁會發生什麼,

enter image description here

如果我修改下面的函數,

public void gdSharedReport_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      gdSharedReport.PageIndex = e.NewPageIndex; 
      gdSharedReport.DataBind(); 

     } 

要,

public void gdSharedReport_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      gdSharedReport.PageIndex = e.NewPageIndex; 
      gdSharedReport.DataSource = BindData(); 
      gdSharedReport.DataBind(); 

     } 

然後分頁開始工作,但尋呼機號碼消失,如果我點擊分頁,

enter image description here

回答

1

您需要在頁面索引更改事件中再次指定分頁。

public void gdSharedReport_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      gdSharedReport.PageIndex = e.NewPageIndex; 
      gdSharedReport.AllowPaging = true; 
      gdSharedReport.PageIndexChanging += new GridViewPageEventHandler(gdSharedReport_PageIndexChanging); 
      gdSharedReport.PagerTemplate = null; 
      gdSharedReport.DataSource = BindData(); 
      gdSharedReport.DataBind(); 

     } 
相關問題