2012-03-26 13 views
0

In meinem Codebehind, legte ich die Anzeige-Eigenschaft eines asp.net-Steuerelements auf keine wie folgt;jQuery und ASP.NET steuert die Sichtbarkeit im Code hinter

fuDoc.Attributes("style") = "display:none;" 'fuDoc is a FileUpload control. 

Auf meiner Seite, wenn der Benutzer ein Dokument hochladen will, sie auf einen Link klicken, die jQuery unter Verwendung Ich habe die display Eigenschaft auf 'block' unter Verwendung .show() wie folgt;

$('#fuDoc').show(); 

Ich habe auch versucht;

$('#fuDoc').attr('style', 'display:block;'); 

jetzt auf Formular abgesendet haben, muss ich überprüfen, ob die fuDocvisible ist und wenn ja, tun, um die Standard-Datei-Upload-Prozess z.B. .HasFile etc .. überprüfen

Doch obwohl die fuDoc Kontrolle display:block in HTML ohne Probleme gesetzt wird, erzeugt die folgenden asp.net Code immer wahr

If fuDoc.Attributes("style") = "display:none;" Then 'always results to true 

Was ist der Grund dafür? Jede Hilfe wäre willkommen.

Hinweis: Das FileUpload-Steuerelement wird NICHT dynamisch erstellt.

Antwort

1

Anstatt sich auf Erfassen, ob die Fileupload auf der Seite sichtbar ist, können Sie einen Text oder Hidden umfassen wie:

<asp:TextBox id="txtIsFileUploadShown" runat="server" cssclass="txtisfileuploadshown" Text="0" style="display:none;" /> 

Diese Steuerung wird auf der Seite versteckt werden, Speichern des Wertes von 0 standardmäßig.

Jedes Mal, wenn Sie verstecken/den Datei-Upload zeigen, Ihren Code ändern, um auch diesen Wert zu ändern:

$('#fuDoc').show(); 
$(".txtisfileuploadshown").val('1'); 

Wenn versteckt:

$('#fuDoc').hide(); 
$(".txtisfileuploadshown").val('0'); 

Dann in Ihrem Code-Behind auf Post zurück, einfach überprüfen:

If IsNumeric(txtisfileuploadshown.text) AndAlso Cint(txtisfileuploadshown.text)=1 Then 
    'Do HasFile validation here. 
End 
2

Das Problem ist, dass style Attribute Änderungen auf dem Client nicht während eines Postback beibehalten werden.

Eine mögliche Lösung wäre die Verwendung eines versteckten Feldes, um den Zustand der fuDoc Steuerung zu speichern.

+0

danke codrin, gewählt, um zuerst zu sein, aber musste das andere akzeptieren, da es Beispiel enthält le und könnte hilfreich für andere sein, die ähnliche Probleme haben. –

Verwandte Themen