【问题标题】:No controls postback after using Export To CSV method使用 Export To CSV 方法后没有控制回发
【发布时间】:2013-03-20 00:10:55
【问题描述】:

取得了一些成功,我使用this suggested code 将gridview 导出为CSV(或者在我的情况下为TSV)。

我点击我的按钮,页面帖子返回,TSV 已交付。太好了。

但是,在回发之后,没有其他控件(自动回发设置为 true 的下拉列表和按钮 - 一个提交另一个 javascript 触发的回发按钮)将回发到服务器。

可能的线索:查看 Google Chrome 网络选项卡,CSV 的 POST 被视为“已取消”。

如果他们提供任何帮助,这里是 CSV 的 REQUEST 和 RESPONSE 标头 - 我已经删除了一些与安全性相关的内容:

请求:

POST /Perspective/SitePages/User_Email_List.aspx HTTP/1.1
Host: as-sharepoint
Connection: keep-alive
Content-Length: 8740
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://as-sharepoint
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Content-Type: application/x-www-form-urlencoded
DNT: 1
Referer: http://as-sharepoint/Perspective/SitePages/User_Email_List.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: WSS_KeepSessionAuthenticated={xxx}

回应:

HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: application/text
Server: Microsoft-IIS/7.5
SPRequestGuid: xxx
Set-Cookie: WSS_KeepSessionAuthenticated={xxx}; path=/
X-SharePointHealthScore: 1
Set-Cookie: WSS_KeepSessionAuthenticated={xxx}; path=/
Content-Disposition: attachment;filename=EmailList.tsv
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.4762
Date: Tue, 19 Mar 2013 13:40:18 GMT

其他可能的相关信息:

  • 我调用的方法驻留在页面上的标签中(这是一个 Sharepoint 网站,使代码隐藏变得困难)
  • 我感觉这与未正确关闭分块下载有关,但我不能确定。

如果需要更多信息,我可以免费提供!

【问题讨论】:

    标签: c# asp.net http sharepoint


    【解决方案1】:

    我最近遇到了这个问题,这是一个已知问题。有关 SharePoint 不允许多次回发的问题。请查看以下链接,了解此人是如何解决的。

    http://blogs.msdn.com/b/bspann/archive/2009/06/29/exporting-binary-files-inside-sharepoint-webpart.aspx

    至于我如何解决我的问题,我使用了 DexExpress 控件和一个 ASPxButton 来启动服务器端代码以导出网格。我还在客户端的 onClick 事件中附加了一些 javascript 代码来设置以下变量 _spFormOnSubmitCalled=false;_spSuppressFormOnSubmitWrapper=true;

    <dx:ASPxButton runat="server" ID="btnExportGrid" Text="Export Data" AutoPostBack="False" OnClick="btnExportGrid_Click"   >
        <ClientSideEvents Click="function(s, e) {_spFormOnSubmitCalled=false;_spSuppressFormOnSubmitWrapper=true;}" />
    </dx:ASPxButton>
    

    我希望这会有所帮助。

    【讨论】:

    • 我将此答案标记为有用,但不接受此答案。虽然我无法确认建议的代码修复是否有效,但我将我的代码从 Sharepoint 母版页驱动的 aspx 转移到一个普通的 aspx 页面,并且 - 你会知道 - 它有效!因此,这个答案为我指明了正确的方向。谢谢埃德!
    猜你喜欢
    • 2021-04-02
    • 2023-03-28
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2016-06-28
    相关资源
    最近更新 更多