1

ラジオボタンリストを使用して、グリッドビューの現在のページまたはグリッドビュー全体をExcelシートにエクスポートするかどうかをユーザーが選択できるようにしましたが、グリッドビュー全体をエクスポートする場合は、現在のページのみが機能しています。 Excelシートでは、ヘッダー行のみが表示されます。ここでの問題は何ですか、それはラジオボタンリストの選択されたインデックスと関係がありますか?

protected void btnExport_Click(object sender, EventArgs e)
{
    if (this.RadioButtonList1.SelectedIndex == 1)
    {
        //  the user wants all rows in the current page, set pagesize and rebind
        this.GridView1.PageSize = 10;
        this.GridView1.DataBind();
    }
    else if (this.RadioButtonList1.SelectedIndex == 2)
    {
        //  the user wants all rows exported, have to turn off paging and rebind
        this.GridView1.AllowPaging = false;
        this.GridView1.DataBind();
    }
    GridViewExportUtil.Export("ContactsInformation.xls", this.GridView1);
}
4

2 に答える 2

1

ちょっとした考え

protected void btnExport_Click(object sender, EventArgs e)
{
    var collection = GetTheDataSource(); // Get the source.

    if (this.RadioButtonList1.SelectedIndex == 1)
    {
        //  take first 10 items from the collection     
        collection = collection.Take(10); 
    }
    //set the grid source followed by binding it
    this.GridView1.DataSource = collection;
    this.GridView1.DataBind();

    //Export the grid record to excel
    GridViewExportUtil.Export("ContactsInformation.xls", this.GridView1);
}
于 2012-08-17T07:32:37.103 に答える
0

次のコードを使用できます...Linqを使用してデータソースから特定のレコードをグリッドビューにバインドし、ページング中にデータソース全体をバインドします..次にGridviewをExportメソッドに使用します..これはうまくいくはずです...

protected void btnExport_Click(object sender, EventArgs e) 
        {    
              var datasource;
              if (this.RadioButtonList1.SelectedIndex == 1)     
               {         
                  int pageSize = 10; 
                  datasource= GridViewDatasourceCollection.Skip(pageSize * pageNumber).Take(pageSize);    
                  this.GridView1.DataSource= datasource;    
                  this.GridView1.DataBind();     
               }     
               else if (this.RadioButtonList1.SelectedIndex == 2)     
               {         
                  //  the user wants all rows exported, have to turn off paging and rebind                
                  this.GridView1.AllowPaging = datasource;         
                  this.GridView1.DataBind();     
               }     
               GridViewExportUtil.Export("ContactsInformation.xls", this.GridView1); 
           } 
于 2012-08-17T08:09:16.640 に答える