c# - 从后面的代码更改按钮可见性失败
问题描述
我有一个图像按钮,可以从数据库中提取数据并使用 EPPlus 将其保存到 Excel 文件中。当用户单击按钮时,将触发一个脚本以使用 OnClientClick 隐藏该按钮,并且在保存文件后将重新出现一个按钮。最初的隐藏部分正在工作,但使其再次可见是行不通的。
但是,后来我发现如果我将函数 DumpToExcel (将数据表传输到 Excel 的函数)注释掉,按钮会再次显示。
谁能告诉我是什么导致了函数内部的问题?谢谢!
转储到Excel
private void DumpToExcel(DataSet dsReorder, DataSet dsShipment)
{
try
{
using (ExcelPackage pck = new ExcelPackage())
{
List<string> dateColumns = new List<string>()
{
"LoadingDt",
"ETAPortDt",
"ROGDate",
"DateRecd",
"ExpectedShipDt",
"LoadingDt",
"RequestDate",
"ShipDate",
"PromiseDate"
};
ExcelWorksheet ws1 = pck.Workbook.Worksheets.Add(dsReorder.Tables[0].TableName);
ws1.Cells["A1"].LoadFromDataTable(dsReorder.Tables[0], true);
using (ExcelRange rng = ws1.Cells["A1:AG1"])
{
rng.Style.Font.Bold = true;
}
ExcelWorksheet ws2 = pck.Workbook.Worksheets.Add(dsShipment.Tables[0].TableName);
ws2.Cells["A1"].LoadFromDataTable(dsShipment.Tables[0], true);
FormatWorksheetData(dateColumns, dsShipment.Tables[0], ws2);
using (ExcelRange rng = ws2.Cells["A1:AG1"])
{
rng.Style.Font.Bold = true;
}
ExcelWorksheet ws3 = pck.Workbook.Worksheets.Add(dsShipment.Tables[1].TableName);
ws3.Cells["A1"].LoadFromDataTable(dsShipment.Tables[1], true);
FormatWorksheetData(dateColumns, dsShipment.Tables[1], ws3);
using (ExcelRange rng = ws3.Cells["A1:AG1"])
{
rng.Style.Font.Bold = true;
}
ExcelWorksheet ws4 = pck.Workbook.Worksheets.Add(dsShipment.Tables[2].TableName);
ws4.Cells["A1"].LoadFromDataTable(dsShipment.Tables[2], true);
FormatWorksheetData(dateColumns, dsShipment.Tables[2], ws4);
using (ExcelRange rng = ws4.Cells["A1:AG1"])
{
rng.Style.Font.Bold = true;
}
string fileName = "RP_DataPull.xlsx";
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
Response.BinaryWrite(pck.GetAsByteArray());
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
btn_OnClick
protected void ibtnPullData_Click(object sender, ImageClickEventArgs e)
{
//Acquire "DataTable"
string cnAPStr = System.Configuration.ConfigurationManager.ConnectionStrings["conAP_SQLWeb"].ConnectionString; ;
string queryReorder = "exec uspDataPull_ReorderPointInfo";
string queryShipment = "exec uspDataPull_ShipmentsInfo";
SqlConnection cn = new SqlConnection(cnAPStr);
//ReorderPointInfo
SqlDataAdapter daReorder = new SqlDataAdapter(queryReorder, cn);
DataSet dsReorder = new DataSet();
daReorder.Fill(dsReorder);
dsReorder.Tables[0].TableName = "Reorder Point";
//ShipmentsInfo
SqlDataAdapter daShipment = new SqlDataAdapter(queryShipment, cn);
DataSet dsShipment = new DataSet();
daShipment.Fill(dsShipment);
dsShipment.Tables[0].TableName = "Items in Shipment";
dsShipment.Tables[1].TableName = "Open POs";
dsShipment.Tables[2].TableName = "Open Sos";
this.ibtnPullData.Style.Add("display", "inherit");
DumpToExcel(dsReorder, dsShipment);
}
解决方案
推荐阅读
- java - 获取R2DBC连接Java Spring失败
- flutter - 使用 Flutter for Mediawiki 进行客户端登录
- python - 如何检测价格何时高于先前的高点
- c# - Serilog 属性解构不能始终如一地工作?
- pandas - 向列添加唯一 id 并在来自同一 pandas 数据帧的唯一 id 中包含一个值
- javascript - 查找行数组中最后一列的最后一个值
- css - 如何使svg文本响应
- python - 使用字符串和 int 错误从一年创建日期 - PYTHON
- laravel - Laravel 模型函数最佳价格
- c++ - 有没有办法显示正在使用的未初始化变量?