0

ユーザーがサーバー上の既存のファイルを上書きして操作をキャンセルするかどうかを確認するために、C# のコード ビハインド ファイルからユーザーの確認を取得しようとしていますが、これまでのところうまくいきません。

これは私のコードです:

if (File.Exists(filePath))
{
   string alertMsg = @"confirm('A File already exists with the same name. \n Would you like to overwrite the existing file ?');";
   ScriptManager.RegisterStartupScript(this, this.GetType(), "Test", alertMsg, true);
}
else
{
   fuPSD.SaveAs(filePath);
}

どんな助けでも大歓迎です。

4

3 に答える 3

0

このようなもの :

作成

<asp:hiddenField id="hf" />* in the aspx file
also put on the JS location a Declaration : 

var answer=null;

サーバーに戻る:

string alertMsg = @"if (confirm('A File already exists with the same name. \n Would you like to overwrite the existing file ?')==true) answer='1'; else answer='0';";

今、サーバー側で: 読む:

hf.value
于 2012-04-07T13:33:12.030 に答える
0

そのコードは、ファイルが存在する場合はメッセージをポップアップ表示し、存在しない場合は保存します。

ただし、クライアント側で確認ダイアログの結果に対して何らかのアクションを実行し、オーバーライドの場合に操作を実行するために、ポストバックまたはその他のサーバー呼び出しをトリガーする必要があります。

于 2012-04-07T13:34:58.427 に答える
0

問題は、次のページがロードされた、 JavaScript 登録がユーザーにファイルの上書きを確認するように求めること です。これにより、クライアント側で確認しているため、ユーザーがサーバーから確認したか拒否したかを判断するという問題が生じます。

過去に、隠しフィールドを使用して true/false を切り替え、サーバー側からポップアップを表示しました。これにより、イベントをコード ビハインドのデリゲートに関連付けることができます (つまり、独自のボタンで独自の確認ボックスを作成します)。__doPostback を手動で呼び出すなど、多くの面倒で難しいスクリプトにつながることがわかったので、これがなくてもこれを実行できます。

于 2012-04-07T13:38:44.307 に答える