DevExpress ASPXButton’da Yalnızca Bir Kere Tıklanmasını Sağlamak (Stop Users from Double Clicking)


Bu işlemi gerçekleştirmek için Click olayına (event) gelip btn.Enabled=false yazmak ne yazık ki yeterli olmuyor. Bu işlem Client-side tarafında yapılacağından örnek bir Button için aşağıdaki kod kullanılabilir:

<dxe:ASPxButton ID=”btnSiparis” runat=”server”
TabIndex=”1″ Text=”Sipariş Ver” Width=”122px”
AutoPostBack=”False” ClientInstanceName=”btnSiparis” UseSubmitBehavior=false>
<Image Url=”~/Images/Perspective-Button-Go-icon.png” />
<ClientSideEvents Click=”function(s, e) {
btnSiparis.SetEnabled(false);
}”
/>
</dxe:ASPxButton>

Buradaki en can alıcı nokta kırmızı renklerle yazılan java kodlarıdır. Click olayında yazılan function, söz konusu button’u disable ediyor. Bu buttona bir kez tıklandığında ikinci kez tıklanmasına izin vermeyecek çünkü disabled olacaktır. Bu kadar hızlı olmasının sebebiyse kullanıcı tarafında (client) çalıştırılıyor olmasıdır. Yani AutoPostBack olmamasıdır.

Hakkında Mehmet KAPLAN
mehmet.kaplan@hotmail.com.tr https://mehmetkaplan.wordpress.com/mehmetkaplan/

6 Responses to DevExpress ASPXButton’da Yalnızca Bir Kere Tıklanmasını Sağlamak (Stop Users from Double Clicking)

  1. afb diyor ki:

    merhabalar
    peki server taraflı click işlemini nasıl çalıştırabilirim AutoPosback=”true” yaptığım halde click altındaki kodlarım çalışmıyor:(

    • Mehmet KAPLAN diyor ki:

      Normalde Autopostback özelliği true ise click olayı çalışacaktır. Eğer true göründüğü halde çalışmıyorsa, asp kodlarına bir bakmanızı öneririm. Properties’da true olduğu halde asp kod tarafında false ya da tanımlanmamış olarak görünüyor olabilir. Visual Studio bazen özellikleri değiştirdiniz halde arkaplanda aynı çalışmaya devam eder. Projeyi \ bilgisayarı kapatıp açmayı deneyin. Eğer olmazsa bana sayfayı gönderin, göz atayım.

  2. afb diyor ki:

    cevabınız için teşekkürler ama normal aspnet kontrolü ve ufak javascript koduyla bu işi hallettim.
    iyi çalışmalar

    • Mehmet KAPLAN diyor ki:

      Buyurun, paylaşın da bizler de öğrenmiş olalım🙂

      • afb diyor ki:

        biraz geç oldu ama🙂

        public static string Disable(Control pge, Control btn)
        {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append(“if (typeof(Page_ClientValidate) == ‘function’) {“);
        sb.Append(“if (Page_ClientValidate() == false) { return false; }} “);
        sb.Append(“this.value = ‘Lütfen Bekleyin…’;”);
        sb.Append(“this.disabled = true;”);
        sb.Append(pge.Page.GetPostBackEventReference(btn));
        sb.Append(“;”);
        return sb.ToString();
        }
        kullanımı ise;

        this.btnGiris.Attributes.Add(“onclick”,
        Disable(this.Page, this.btnGiris));

        iyi çalışmalar

      • Mehmet KAPLAN diyor ki:

        Teşekkürler.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: