-1
"StoreId"列を持つデータセットをキャッシュしました。 データセットをExcelにエクスポートするときに、データセットとExprotから「StoreId」列を削除するとします。Asp.netキャッシングの問題
以下は、Excelへの削除とExcelへのエクスポートのコードです。
データをエクスポートした後if (HttpContext.Current.Cache["stores"] != null)
{
using (DataSet dsStores = (DataSet)HttpContext.Current.Cache["stores"])
{
if (TrainingUtil.isDataSetValid(dsStores))
{
DataTable dt = dsStores.Tables[0];
dt.Columns.Remove("storeId");
Quality.Qulaity_Utility.ExportDataSet(dt, ddlCity.SelectedItem.Text.ToString() + "_StoreCodes");
}
}
}
public static void ExportDataSet(DataTable dt,string filename)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/vnd.xls";
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + filename.Replace(" ", "_").ToString() + ".xls");
DataGrid dgRecord = new DataGrid();
//Color Setttings
dgRecord.HeaderStyle.BackColor = System.Drawing.Color.Cyan;
dgRecord.DataSource = dt;
dgRecord.DataBind();
//Cells color settings
foreach (DataGridItem dgi in dgRecord.Items)
{
foreach (TableCell tcGridCells in dgi.Cells)
{
tcGridCells.Attributes.Add("class", "sborder");
}
}
//Render the datagrid
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
dgRecord.RenderControl(htmlTextWriter);
//lstMonthlyReport.RenderControl(htmlTextWriter);
//Add the style sheet class here
HttpContext.Current.Response.Write(@"<style> .sborder { color : Black;border : 1px Solid Black; } </style> ");
//Export
HttpContext.Current.Response.Write(stringWriter.ToString());
//End
HttpContext.Current.Response.End();
//style to format numbers to string
//string style = @"<style> body { mso-number-format:\@; } </style>";
}
}
と私は一度againgキャッシュされたデータセット から店舗情報を欲しいとき、私は「StoreId」列を見つけることができませんでした、 私は私が間違ってやってできない数字アウトです。 Plzは私を助けます。
ありがとうございます。
ありがとうございました。 –