1

フレームダイアログのコンテンツページ内のダウンロードボタンをクリックした後、ダウンロードウィンドウ(jqueryフレームダイアログを使用して開いた)を閉じる必要があります。次のような応答でダウンロード ファイルを送信するための別の iframe を作成しています:(Download.aspx はファイル ID に基づいてクライアントにファイルを送信します)

var script = @"<script language=JavaScript>function Export(fileID)
                            {
                                    var iframe = document.createElement('iframe');
                                    iframe.src = 'DownloadForm.aspx?ID='+ fileID;
                                    iframe.style.display = 'none';
                                    document.body.appendChild(iframe);
                                    //alert('AlertBox'); 
                            }
                            </script>"; 
Page.ClientScript.RegisterStartupScript(typeof(string), "Startup", script);  

ダウンロードが完了したら、ダウンロード ウィンドウを閉じます。しかし、私の問題は、コメント付きの alertBox を使用すると、両方のコードが正常に機能する (ダウンロードして閉じる) ことです。しかし、アラートボックスなしで発生させたいです。アラート ボックスを使用しない場合、Download.aspx ページは呼び出されません。(スクリプトを登録し、アラートボックスが何かを実行している間、スクリプトはクライアント側に送信されないと思います..なぜそれが起こっているのかわかりません..親切に助けてください..よろしくお願いします

4

4 に答える 4

1

代わりに、次を使用できます。

ScriptManager.RegisterStartupScript(this, GetType(), "StartupScript", script, true);

どこscriptにありますか:

var script = @"function Export(fileID)
                            {
                                    var iframe = document.createElement('iframe');
                                    iframe.src = 'DownloadForm.aspx?ID='+ fileID;
                                    iframe.style.display = 'none';
                                    document.body.appendChild(iframe);
                                    //alert('AlertBox'); 
                            }
                            //Export(YourFileIDHere);"; 

ただし、コードはスクリプトに含まれる関数のみを定義していることにも注意してください。JSコードのどこでもこの関数を呼び出さないでください。(したがって、関数を実行するためにコメントを外すことができるコメント付きコードを、適切に含めましたfileID

于 2013-02-07T10:39:02.483 に答える
1

これを使って..

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "function   name", true);

あなたの場合はそうなります。

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "Export(file Id);", true);
于 2013-02-07T10:44:18.857 に答える
1

問題の解決策を見つけました。基本的に、クライアント側でダウンロードが完了する前に、ダウンロード ウィンドウを閉じていました。そこで、ダウンロードウィンドウの親ページにファイルをダウンロード(非表示)するためのフレームを追加してから、ダウンロードウィンドウを閉じます

于 2013-02-08T05:50:39.740 に答える
1

これを試して

Page.ClientScript.RegisterStartupScript(getType(), "Startup", script, true); 
于 2013-02-07T10:35:26.127 に答える