Avatar billede milcm Nybegynder
01. juni 2005 - 00:02 Der er 5 kommentarer

Disable knap

Jeg skal disable en linkbutton når der er trykket på den, sådan at man ikke kan nå at trykke på den flere gange for siden poster back. Jeg har fået den til at disable via Javascript, men funktionaliteten er der stadig.
string scriptString = "<script language=JavaScript> function Disable(ctrl) {";
scriptString += "ctrl.disabled=true";
scriptString += "}</script>";
if (!IsClientScriptBlockRegistered("disableScript"))
RegisterClientScriptBlock("disableScript", scriptString);
pageNo.Attributes.Add("OnClick", "java script:Disable(this);");
Det skulle nu gerne være sådan at funktionaliteten i linkbuttonen også disables - forslag???
Avatar billede dr_chaos Nybegynder
01. juni 2005 - 16:07 #1
Hvis du har en eventhandler i din code behind fil kan du enable eller disable knappen.
Avatar billede burningice Nybegynder
01. juni 2005 - 16:19 #2
dr_chaos>> det er jo netop det du ikke kan... for at det skal kunne ske skal siden postes, og det kan godt tage lidt tid. Og i den tid er der ikke nogen der forhindrer en i at trykke på linket igen, og igen, og igen.

milcm>> jeg kan nok godt strikke et script sammen, men det bliver desværre ikke lige nu, da jeg har nogle ting der skal ordnes først.
Avatar billede snepnet Nybegynder
02. juni 2005 - 00:35 #3
Du kan få en knap du kan bruge til det her :
(hvis det skal være en LinkButton kan du bare subclasse den istedet for Button - scriptet virker med begge dele)

mvh

public class WaitButton : Button
{
    private bool _disableWhileProcessing = true;
    private string _waitMessage = "Wait...";

    public bool DisableWhileProcessing
    {
        get{return _disableWhileProcessing;}
        set{_disableWhileProcessing = value;}
    }

    public string WaitMessage
    {
        get{return _waitMessage;}
        set{_waitMessage = value;}
    }

    protected virtual string GenerateWaitScript()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("if (typeof(Page_ClientValidate) == 'function') { ");
        sb.Append("if (Page_ClientValidate() == false) { return false; }} ");
        sb.AppendFormat("this.innerText = '{0}';", this.WaitMessage);
        sb.Append("this.disabled = true;");
        sb.Append(this.Page.GetPostBackEventReference(this));
        sb.Append(";");
        return sb.ToString();   
    }

    public override void RenderBeginTag(HtmlTextWriter writer)
    {           
        if(DisableWhileProcessing)
            this.Attributes["onclick"] =  GenerateWaitScript();

        base.RenderBeginTag (writer);
    }
}
Avatar billede snepnet Nybegynder
07. september 2005 - 17:24 #4
hvordan går det her?
mvh
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 16:37 #5
Du mangler at lukke spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester