【问题标题】:Generate excel from javascript从 javascript 生成 excel
【发布时间】:2014-02-19 10:37:41
【问题描述】:

我已经编写了所有代码以在名为 GenerateXLS.aspx 的 ASPX 页面中生成 excel,并且我将导出到 javascript 调用为

var BudgetID = document.getElementById("ctl00_ContentPlaceHolder1_CmbBudget").value;
var BudgetType = document.getElementById("ctl00_ContentPlaceHolder1_CmbBudgetType").value;
var CompanyID = document.getElementById('<% =HidCompanyID.ClientID %>').value;
var UserID = document.getElementById('<% =HidUserID.ClientID %>').value;
var BudgetName = document.getElementById("ctl00_ContentPlaceHolder1_CmbBudget").options[document.getElementById("ctl00_ContentPlaceHolder1_CmbBudget").selectedIndex].text;
var BudgetTypeName = document.getElementById("ctl00_ContentPlaceHolder1_CmbBudgetType").options[document.getElementById("ctl00_ContentPlaceHolder1_CmbBudgetType").selectedIndex].text;

document.getElementById("iFrame_Excel").src = "../Reports/GenerateXLS.aspx?Source=BudgetReport&BudgetID=" + BudgetID + "&BudgetType=" + BudgetType + "&CompanyID=" + CompanyID + "&UserID=" + UserID + "&BudgetName=" + BudgetName + "&BudgetTypeName=" + BudgetTypeName;   alert("works now");

问题在于它正在生成 excel,但前提是我将警报保留在 javascript 函数的末尾。如果我从函数中删除警报,页面会被回发但不生成excel文件。可能是什么问题?为什么只有在我保持警报的情况下才生成excel文件?

【问题讨论】:

  • 这段代码在回调里面?即 点击事件的行为?
  • 尝试将其放入 ajax 请求而不是 &lt;a&gt;。这样,响应将被捕获,您的页面也将生成 Excel
  • @Alberto 没有。我提供的整个 coe 都在一个 javascript 函数中。我正在调用按钮的onclientclick
  • 您是否在事件中调用 preventDefault() ? e.preventDefault()
  • @Alberto:超级。它与 e.preventDefault() 一起工作。谢谢你uuuuuuuuuuuuuuuuuuuu

标签: c# javascript asp.net excel


【解决方案1】:

添加e.preventDefault();以避免重新加载,如果您必须在函数执行后转到特定的URL,请添加window.location.href = your_url;

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2014-08-17
    相关资源
    最近更新 更多