1

GridViewのAllowpageをtrueに設定した後、GridViewを使用してExcelファイルのデータを表示します。すべてのページに、最初のページと同じコンテンツが表示されます。理由を教えてくれた人に感謝します!

GrdiViewのHTMLコードは次のとおりです。

<asp:GridView ID="GridView_NewStaff" runat="server" AutoGenerateColumns="False" 
 CellPadding="4" Font-Size="Small" ForeColor="#333333" AllowPaging="True" 
 AllowSorting="True" onpageindexchanging="GridView_NewStaff_PageIndexChanging" 
 PageSize="20">
 <pagersettings firstpagetext="First" lastpagetext="Last">
     Mode="NextPreviousFirstLast" NextPageText="Next" PageButtonCount="4" 
     PreviousPageText="Previous" />
     <columns>......

C#コードは次のとおりです。

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

protected void Button_ReadFile_Click(object sender, EventArgs e)
{
    bindGridView();
}


public void bindGridView()
{
    if (FileUpload_StaffInfo.HasFile)
    {
        string InfoFile_Name = Server.MapPath(InfoFileDirectory) + FileUpload_StaffInfo.FileName;
        FileUpload_StaffInfo.SaveAs(InfoFile_Name);

        dataTable_Excel = new DataTable();

        if (InfoFile_Name.EndsWith(".xlsx"))//Read Excel2007-2010 format file
        {
            StaffExcelXML StaffNewXML = new StaffExcelXML();
        StaffNewXML.ExcelInput(InfoFile_Name, ref dataTable_Excel)
        }
        else if (InfoFile_Name.EndsWith(".xls"))//Read Excel1997-2003 format file
        {
            StaffXLS StaffNewXLS = new StaffXLS();
        StaffNewXLS.ExcelInput(InfoFile_Name, ref dataTable_Excel);
        }

        GridView_NewStaff.DataSource = dataTable_Excel;
        GridView_NewStaff.DataBind();
    }
}

protected void GridView_NewStaff_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView_NewStaff.PageIndex = e.NewPageIndex;
    bindGridView();
}
4

1 に答える 1

0

変化する

GridView_NewStaff.PageIndex = e.NewPageIndex;
bindGridView();

GridView_NewStaff.PageIndex = e.NewPageIndex;
GridView_NewStaff.DataBind();

新しいページ インデックスを GridView に割り当てた後、GridView コントロールを再バインドするだけです。

于 2012-10-12T02:37:22.267 に答える