-1
我有一個關於導出的問題,它擅長從gridview過濾一些結果。我使用這個鏈接的解決方案http://forums.asp.net/t/1991866.aspx?Export%20filtered%20results%20to%20excel%20in%20MVC%204 它一切正常,除了我導出的表有很多來自外鍵的ID列,我不能導出數字,我需要這些數據。我有一個變量,我保留所有與所導出的表相關的表的選擇連接,但我不知道如何在此變量和保持來自Session的篩選結果之間建立連接。你可以幫幫我嗎?謝謝。將過濾後的結果導出爲excel
A
回答
0
在Page_Load中顯示所有記錄。
雖然只導出選擇我與斯科特
訂單 保護無效的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)
{
}
我有兩個變量。一個保存已過濾的結果,另一個保存與具有我想要導出的表的外鍵的表的聯接。而gv.DataSource只能得到這兩個中的一個,對吧? – 2015-02-24 12:57:04
確切地說,包含過濾結果集的變量。 – 2015-02-24 13:13:11
我把它,但問題是,我有一些列與其他表的外鍵,並在這張表,我想導出我只有這些列的ID。我想要的信息,如文字,而不是id-s。 – 2015-02-25 11:52:42