当我使用
时
Button1_Click
函数是Export excel但它不起作用。
protected void Button1_Click(object sender, DirectEventArgs e)
{
DBOperator db = new DBOperator();
string sSql = "SELECT * FROM table";
DataTable dt = db.GetTable(sSql);
ExcelHelper.ExportDTtoExcel(dt, "", "test.xls");
}
当我不使用ext工作时。 aspx代码:
<ext:Panel ID="Panel2" runat="server" Title="人均情况" Width="900" Height="650">
<Items>
<ext:Button runat="server" Text="点EXT">
<DirectEvents>
<Click OnEvent="Button1_Click" />
</DirectEvents>
</ext:Button>
</Items>
我来自中国人,英语很差。我试着描述我的问题。
我想使用ext.net和NPOI(EXCEL控件)导出EXCEL文件。
如果我使用C#和NPOI效果很好。
现在我开始使用ext.net和NPOI。以下
<body>
<form>
My button
</form>
</body>
有效。
但是,如下
<body>
<ext:ResourceManager ID="ResourceManager1"
runat="server"
Theme="Gray" / >
<ext:Panel ID="Panel2"
runat="server"
Title="per capita"
Width="900"
Height="650">
<Items>
<ext:Button runat="server"
Text="EXT"
AutoPostBack="true">
<DirectEvents>
<Click OnEvent="Button1_Click" / >
</DirectEvents>
</ext:Button>
</Items>
</ext:Panel>
</body>
它不起作用。
错误:
“WebForm_PostBackOptions”未定义
我删除了AutoPostBack= "true" >
错误:
由于操作无法完成,发生错误c00ce514。
最重要的是,当我加入ext:Panel
时会出错。
答案 0 :(得分:1)
问题可能发生在ExcelHelper.ExportDTtoExcel
。我假设这个方法正在向Response流写一些东西,它会覆盖所需的Ext.NET DirectEvent响应。
以下示例演示了在Ext.NET DirectEvent期间导出到Excel的技术:
http://examples.ext.net/#/GridPanel/Miscellaneous/Export_Data_Ajax/
希望这有帮助。
答案 1 :(得分:0)
当您的下载代码放在执行异步回发的更新面板中时,可能会发生错误?
然后,您必须确保提供二进制文件的请求始终执行同步回发,以便浏览器能够解释二进制结果文件。
解决方案:将按钮名称设为PostBackTrigger或使用
注册按钮ScriptManager.GetCurrent(Page).RegisterPostBackControl(yourButton)