FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3985|回复: 7
打印 上一主题 下一主题

关于使用FineUI控件后的下载问题

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-22 16:33:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的需求是这样的。点击页面一个导出按钮,弹出window窗体,里面有多个选择框。如图(1),然后选择要导出的列 回传给主页面我用的方法是这样的:
protected void btn_Export_Click(object sender, EventArgs e)
    {
        string str = "";
        str = GetCols();
        PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference(str));
    }
这样我的主窗体就会有一个close事件。
protected void win_Export_Close(object sender, WindowCloseEventArgs e)
    {
        string param = e.CloseArgument;
        OSYTax osyTax=new OSYTax();
        DataTable dt= osyTax.GetExport(GetParam());
        if (param != null && param.Length > 0 && param != "undefined")
        {
            string[] Params = param.Split(new string[] { "{##}" }, StringSplitOptions.RemoveEmptyEntries);
            string[] ParamColsValue = Params[0].Split(',');//字段
            string[] ParamColsText = Params[1].Split(',');//字段名
            DataTable dtNew= dt.DefaultView.ToTable(false, ParamColsValue);
            for (int i = 0; i < ParamColsText.Length; i++)
            {
                dtNew.Columns[i].ColumnName = ParamColsText[i];
            }
            //ExportExcel.ExportToExcel(dtNew, this.Response, this.Server, "纳税管理");
            NPOIExport.ExportByWeb(dtNew, "NPOI导出", "纳税管理");
        }
    }

我用的导出excel方法是将datatable字节输出.
HttpContext curContext = HttpContext.Current;

            // 设置编码和附件格式  
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding = Encoding.UTF8;
            curContext.Response.Charset = "";
            curContext.Response.AppendHeader("Content-Disposition",
                "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));
            curContext.Response.BinaryWrite(Export(dtSource, strHeaderText).GetBuffer());
            curContext.Response.End();

但是就是没反应 程序也没报错。网上看是说AJAX问题。我猜FineUI的AJAX问题。请高手解决




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2013-8-22 16:49:45 | 只看该作者
没人可以解决这个问题嘛?
板凳
发表于 2013-8-22 16:53:25 | 只看该作者
你这个用法有点特殊,回头我写个例子
地板
 楼主| 发表于 2013-8-22 16:55:10 | 只看该作者
sanshi 发表于 2013-8-22 16:53
你这个用法有点特殊,回头我写个例子

老大,你总算是出来了。再不拯救我 我就不行了 。这个问题困扰我2天了 - -
5#
发表于 2013-8-22 17:35:39 | 只看该作者
◆◇_提拉米苏℡ 发表于 2013-8-22 16:55
老大,你总算是出来了。再不拯救我 我就不行了 。这个问题困扰我2天了 - - ...



本来这个例子,你只需要为Window控件设置 EnableAjax=false,就行了。但是这个地方FineUI有问题,还不支持,下个版本会支持。

所以,暂时为了使你的例子运行起来,可以在父页面中(也就是Window定义的页面),加入如下JavaScript代码:
  1. <script>
  2.         var windowID = '<%= Window1.ClientID %>';

  3.         function onReady() {
  4.                 var window = X(windowID);
  5.                 var oldHidePostback = window.x_hide_postback;
  6.                 window.x_hide_postback = function () {
  7.                         X.control_enable_ajax = false;
  8.                         oldHidePostback.apply(this, arguments);
  9.                 };
  10.         }
  11. </script>
复制代码
6#
 楼主| 发表于 2013-8-22 17:51:25 | 只看该作者
sanshi 发表于 2013-8-22 17:35
本来这个例子,你只需要为Window控件设置 EnableAjax=false,就行了。但是这个地方FineUI有问题,还不 ...

老大,按照你说的加了那段代码 还是不行
7#
 楼主| 发表于 2013-8-22 18:23:54 | 只看该作者
谢谢老大加班和我一起看这个问题。我十分感动{:soso_e113:},问题也找到了。是我的页面JS函数问题,通一个页面只能有一个onReady函数。我写了2个,后面的覆盖了前面的。所以导致不行。也希望大家别犯和我一样的低级错误。
8#
发表于 2014-2-23 17:39:04 | 只看该作者
这个示例会增加到 FineUI v4.0 正式版中。

-修正Window控件不支持EnableAjax的问题,增加示例grid/grid_excel_selectcolumns.aspx(◆◇_提拉米苏℡)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-23 11:02 , Processed in 0.049123 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表