2017-06-16 5 views
-2

Wenn ich auf LinkButton lbUpVoteUndo klicke, sollte es für 10 Sekunden deaktivieren. Ich habe es in C# code-behind probiert. Gibt es eine andere Möglichkeit, dasselbe zu tun?Wie aktiviere LinkButton nach 10 Sekunden Asp.net?

protected void lbUpVoteUndo_Click(object sender, EventArgs e) 
{ 
    lbUpVoteUndo.Enabled = false; 

    if(/* check for 10 seconds */) 
    { 
     lbUpVoteUndo.Enabled = true; 
    } 
} 
+0

ich das übernehmen werde ist WebForms, si nce haben Sie nicht angegeben. Wenn Sie versuchen, die Seite zu laden, haben Sie 10 Sekunden später die Schaltfläche enable, dies ist mit dem Servercode nicht möglich. Der Code, den Sie gepostet haben, wartet 10 Sekunden auf die Ausführung, dann wird die Seite mit aktivierter oder deaktivierter Schaltfläche geladen. – Seano666

+0

Es ist nicht mit 'WebForms' verwandt. Es ist einfach 'Linkbutton', auf den ich klicke. – AsifAli72090

+3

Ich würde empfehlen, dies mit Javascript zu tun, wenn Sie können, sonst müssen Sie diese Schaltfläche in ein UpdatePanel umbrechen und ich bin mir nicht sicher, ob Sie das implementiert haben. –

Antwort

2

Javascript kann dies für Sie tun. Diese beiden Zeilen Code wird es für Sie tun:

function DisableFor10Seconds() { 
     document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = true; 
     setTimeout(function(){document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = false;},10000); 
} 

Es ist eine Weile her, seit ich auf .NET webforms gearbeitet, aber in Ihrer Kontrolle glauben, dass ich Sie so etwas tun könnte:

<asp:LinkButton ID="lbUpVoteUndo" OnClientClick="Disablefor10Seconds();" /> 

I‘ Ich möchte hinzufügen, dass 10 Sekunden eine lange Zeit sind, erwarten Sie, dass der Benutzer für 10 Sekunden wartet? Wenn der Benutzer beispielsweise auf Aktualisieren klickt, wird die Schaltfläche wieder aktiviert. Wenn Sie es für 10 Sekunden deaktiviert halten wollen, egal was passiert, dann sollten Sie wahrscheinlich ein Flag in Session oder Cache speichern, das dann vielleicht ein clientseitiges Element mit dem Timer setzen kann.

+0

es zeigt Fehler in 'DisableFor10Seconds' Funktion können Sie es bearbeiten – AsifAli72090

+0

Was ist der Fehler? –

+0

Element 'Style' fehlt seine Endtags FEHLEÈ – AsifAli72090

1

verwenden Javascript-Funktion -

In HTML Code unten mit Ihrem Button-Steuerelement hinzufügen -

UseSubmitBehavior="false" OnClientClick="this.disabled='true'; this.value='Please wait...';" 

In .CS cdoe, verwenden in Sie Schaltfläche klicken Ereignis -

System.Threading.Thread.Sleep(10000); 

Thanks :)

+0

Ich denke, Sie haben ASPX-Seite und Ihr Code in Server-Seite bedeutet CS-Datei. Recht ? –

+0

Ja, ich möchte es in '.cs' Datei behandeln. – AsifAli72090

+1

Ok. Sie können UseSubmitBehavior = "false" Ihrer Schaltfläche verwenden. so - UseSubmitBehavior = "false" OnClientClick = "this.disabled = 'true'; this.value = 'Bitte warten ...';". Und in Ihrem .cs Code schreiben Code Thread.Sleep (3000); –

Verwandte Themen