2012-04-07 2 views
0

Ich versuche, Benutzerbestätigung von C# Code hinter Datei zu erhalten, um zu bestätigen, wenn Benutzer die vorhandene Datei auf dem Server überschreiben will, den Vorgang aber bis jetzt kein Glück.Wie wird die Benutzerantwort auf das Bestätigungsfeld verfolgt, die zur Laufzeit aus dem C# -Code generiert wird?

dies ist mein Code:

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); 
} 

jede mögliche Hilfe würde sehr geschätzt werden.

Antwort

0

etwas wie folgt aus:

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';"; 

jetzt auf der Serverseite: lesen:

hf.value 
+0

Was ist hier hf? und wie erhält C# die Bestätigung vom Benutzer? – Vishal

+0

@Vishal Der Code wurde nicht angezeigt. –

+0

oh yea, die das Bild vervollständigt :) ... Ich diskutierte gerade das gleiche unten mit OnResolve .. Danke für die Zeit raus Royi, ich werde es sofort versuchen und den Erfolg veröffentlichen. – Vishal

0

Das co

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

var answer=null; 

zurück zum Server erstellen de wird die Nachricht anzeigen, wenn die Datei existiert und speichern Sie sie, wenn dies nicht der Fall ist.

Sie müssen jedoch etwas auf dem Bestätigungsdialogergebnis auf der Clientseite durchführen und entweder einen Postback oder einen anderen Serveraufruf auslösen, um die Operation im Falle der Überschreibung auszuführen.

+0

Hmm. Das bedeutet, dass das Ziel, das ich zu erreichen versuche, nicht durch C# code allein möglich ist. Ich muss das Skript auf der Client-Site verwalten und die Antwort verfolgen, indem ich Post-Back mache. Ist das wahr? – Vishal

+0

@Vishal Nun, Sie verwenden bereits JavaScript/DOM, also ... Aber Sie können es vollständig in serverseitig generierten HTML/CSS mit versteckten Formularelementen und stateful Formen tun. –

0

Das Problem ist, dass Ihre JavaScript-Registrierung den Benutzer fragt, um die Datei zu überschreiben nach die nächste Seite geladen wird. Dies wirft dann das Problem auf, zu sagen, ob der Benutzer den Server bestätigt oder abgelehnt hat, da Sie mit der Client-Seite bestätigt haben.

In der Vergangenheit habe ich ein verstecktes Feld verwendet, um true/false um ein Popup von der Server-Seite anzuzeigen. Dies gibt mir die Möglichkeit, die Ereignisse an einen Delegierten auf dem Code dahinter zu verdrahten (ich mache zB mein eigenes Bestätigungsfeld mit meinen eigenen Buttons). Sie können dies immer noch ohne es tun, indem ich feststelle, dass es zu einer Menge von chaotischen und schwer zu folgen Skript wie callin __doPostback manuell führt.

+0

Ja, das ist wahr, also wie wäre es damit, ich werde ein verstecktes Textfeld auf der ASP.net-Seite putten und als Benutzer Antwort zu bestätigen, Box werde ich einen Wert in diese setzen und dann werde ich durch Lesen der Werte in C# code für das gleiche Textfeld, wenn seine 1 dann die Datei überschreiben, denken Sie, dass das klappen wird ?? Ich weiß, _doPostBack manuell aufrufen macht den Code sehr unordentlich. – Vishal

Verwandte Themen