我正在开发一个使用 javascript 和 ajax 进行所有数据查询和前端工作的网页,并且我正在尝试编写 excel 导出功能。看到在 javascript 中执行此操作的唯一方法似乎是使用仅在 IE 中可用的 ActiveXControl,我想将其作为 Sub 包含在我的网页后面的代码文件中。
这似乎是个好主意,但是每当我单击按钮时,页面就会返回,并且所有要导出的数据都消失了。如果我OnClientClick="return false;"
在我的 asp:Button 中包含该按钮,则该按钮不会回发,但 Sub 也不会执行。有什么方法可以在这里完成我的目标而不必使用注册客户端脚本块?任何帮助是极大的赞赏。
谢谢!
- 编辑 -
对于方法调用,我在 $.ajax 上得到 404。这是相关的代码。
//server side
Partial Class Report
Inherits System.Web.UI.Page
<System.Web.Services.WebMethod()>
Public Sub toXL()
Response.Write("<br><br>Here<br><br>")
End Sub
End Class
//client side
function toExcel() {
$.ajax({
type: "POST",
url: "/report.aspx/toXL",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.error) {
alert(msg.error);
}
return false;
}
});
}
//button
<asp:Button ID="MyButton" runat="server" AutoPostBack="false" type="button" OnClientClick="toExcel(); return false;" />