1

ページをクリックしてもページングが機能しません。何も表示されません。これがコードです、

私の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();
    }

グリッドの読み込み方法は次のとおりです。

ここに画像の説明を入力してください

これが私がページをクリックしたときに来るものです、

ここに画像の説明を入力してください

以下の機能を変更すると、

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();

        }

その後、ページングが機能し始めますが、ページングをクリックするとページング番号が消えます。

ここに画像の説明を入力してください

4

1 に答える 1

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();

        } 
于 2015-10-20T09:52:41.477 に答える