0

いくつかの成功を収めて、この提案されたコードを使用して、グリッドビューを CSV (または私の場合は TSV) にエクスポートしています。

ボタンをクリックすると、ページの投稿が戻ってきて、TSV が配信されます。偉大な。

ただし、そのポストバックの後、他のコントロール (autopostback が 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 Web サイトです)
  • これは、チャンク ダウンロードが正しく閉じられていないことに関連しているように感じますが、確信が持てません。

さらに情報が必要な場合は、無料で提供します。

4

1 に答える 1

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>

これがお役に立てば幸いです。

于 2013-03-19T16:10:55.730 に答える