ext调用C#函数不起作用

时间:2014-01-26 08:37:25

标签: c# javascript asp.net javascript-events ext.net

当我使用
时                    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时会出错。

2 个答案:

答案 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)