asp C# GridView i Csv

0

Witam, pisze programik, ktory eksportuje mi dane z bazy(raporty) do CSV. Problem dotyczy kontrolki GridView.
W zaleznosci od wyboru rodzaju raportu(dropDownList) kontrolka GridView przyjmuje inne dane, potem klikajac w przycisk eksportuj wyrzuca mi to do pliku csv, ale...
dziala to tylko wtedy gdy na sztywno do GridView jest przypisane DataSource z jakiejs tam kontroli SQLDataSource. Jesli zmieniam dynamicznie selecta w SQLDataSOurce to niby kontrolka GridView sie zmienia ale CSV si enie tworzy. Analizujac problem nie wiem czemu ale w tym wypadku pobierajac np rows.count pokazuje zero tak samo jak i do kolumn...a przeciez gridview jest wypelniona o to widze...zamieszczam kod prosze o pomoc

[code]
protected void Page_Load(object sender, EventArgs e)
{

    String sql = "";

    SqlDataSource2.ConnectionString = ConfigurationManager.ConnectionStrings["dsc"].ConnectionString.ToString();
  
    test.Text = this.tabelaRaport.Columns.Count.ToString();
  
   
 //   SqlDataSource1.SelectCommand = sql;
    if (listaRaport.SelectedValue.ToString().CompareTo("all") == 0)
    {
       sql="SELECT * FROM [DSC_Order]";
       SqlDataSource2.SelectCommand = sql;
      
    }
    if (listaRaport.SelectedValue.ToString().CompareTo("ilosc") == 0)
    {
        sql = "SELECT productName as Nazwa,price as Cena,orderedCount as Ilosc FROM [DSC_Product] where orderedCount > 0";
        SqlDataSource2.SelectCommand = sql;

    }

    tabelaRaport.DataSourceID = "SqlDataSource2";
}
protected void csvButton_Click(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition",
     "attachment;filename=GridViewExport.csv");
    Response.Charset = "";
    Response.ContentType = "application/text";
    tabelaRaport.AllowPaging = false;
    tabelaRaport.DataBind();
    StringBuilder sb = new StringBuilder();
    for (int k = 0; k < tabelaRaport.Columns.Count; k++)
    {

        sb.Append(tabelaRaport.Columns[k].HeaderText + ',');
    }

    sb.Append("\r\n");
    for (int i = 0; i < tabelaRaport.Rows.Count; i++)
    {
        for (int k = 0; k < tabelaRaport.Columns.Count; k++)
        {

            sb.Append(tabelaRaport.Rows[i].Cells[k].Text + ',');
        }

        sb.Append("\r\n");
    }

    Response.Output.Write(sb.ToString());
    Response.Flush();
    Response.End();
}

[\code]

0

moze nie mozeci emnie zrozumiec wiec jeszcze raz:

SqlDataSource - przypisuje do niego zapyanie typu select
DataGrid - jej zrodlem jest SqlDataSource

W tym przypadku dziala, csv sie generuje

SqlDataSource - brak skonfigurowanego selecta
DataGrid - jej zrodlem jest SqlDataSource, gdzie select jest dodawany jako SelectCommand w zaleznosci od tego jaka opcje wybierzemy z DropDownList

W tym przypadku nie dziala - GridView wyswietla poprawne dane ale raport csv jest pusty - Count wskazuje ze wierszy i kolumn jest 0 w GridView - a przeciez ja ją widze/

w czym problem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1