2015-02-24 65 views
-1

我有一個關於導出的問題,它擅長從gridview過濾一些結果。我使用這個鏈接的解決方案http://forums.asp.net/t/1991866.aspx?Export%20filtered%20results%20to%20excel%20in%20MVC%204 它一切正常,除了我導出的表有很多來自外鍵的ID列,我不能導出數字,我需要這些數據。我有一個變量,我保留所有與所導出的表相關的表的選擇連接,但我不知道如何在此變量和保持來自Session的篩選結果之間建立連接。你可以幫幫我嗎?謝謝。將過濾後的結果導出爲ex​​cel

回答

0
  1. 在Page_Load中顯示所有記錄。

  2. 雖然只導出選擇我與斯科特

    訂單

    保護無效的Page_Load(對象發件人,EventArgs的){ 如果 { DataTable的 DT = BindGridView()(的IsPostBack!); GridView1.DataSource = dt; GridView1.DataBind(); }}

    private DataTable BindGridView(string name = null) 
    { 
        string connectionString = "Data Source=.SQLEXPRESS;Initial Catalog=Employee;Integrated Security=True"; 
        using (SqlConnection con = new SqlConnection(connectionString)) 
        { 
         SqlCommand cmd = new SqlCommand(); 
         if (name != null) 
         { 
          cmd.CommandText = "SELECT * FROM ORDERS WHERE Name='" + name + "'"; 
         } 
         else 
         { 
          cmd.CommandText = "SELECT * FROM ORDERS"; 
         } 
    
         cmd.Connection = con; 
         con.Open(); 
    
         SqlDataReader dr = cmd.ExecuteReader(); 
         DataTable dt = new DataTable(); 
         dt.Load(dr); 
         return dt; 
        } 
    } 
    
    protected void ExportToExcel(object sender, EventArgs e) 
    { 
        Response.Clear(); 
        Response.Buffer = true; 
        Response.AddHeader("content-disposition", "attachment;filename=exportdata.xls"); 
        Response.Charset = ""; 
        Response.ContentType = "application/vnd.ms-excel"; 
        using (StringWriter sw = new StringWriter()) 
        { 
         HtmlTextWriter hw = new HtmlTextWriter(sw); 
    
         GridView gv = new GridView(); 
         gv.DataSource = BindGridView("Scott"); // Seelct all the order where Name='Scott' - my filter query 
         gv.DataBind(); 
    
         gv.RenderControl(hw); 
         Response.Output.Write(sw.ToString()); 
         Response.Flush(); 
         Response.End(); 
        } 
    } 
    
    public override void VerifyRenderingInServerForm(Control control) 
    { 
    
    } 
    
+0

我有兩個變量。一個保存已過濾的結果,另一個保存與具有我想要導出的表的外鍵的表的聯接。而gv.DataSource只能得到這兩個中的一個,對吧? – 2015-02-24 12:57:04

+0

確切地說,包含過濾結果集的變量。 – 2015-02-24 13:13:11

+0

我把它,但問題是,我有一些列與其他表的外鍵,並在這張表,我想導出我只有這些列的ID。我想要的信息,如文字,而不是id-s。 – 2015-02-25 11:52:42