PDA

View Full Version : آموزش: نحوه غیر فعال کردن button سمت کلاینت



احمد سامعی
یک شنبه 06 تیر 1389, 00:10 صبح
سلام

من مدت ها بود دنبال این بودم که چطوری می شه در یک فرم ارسال اطلاعات وقتی کاربر روی کلید ارسال کلیک می کنه کلید به صورت غیر فعال دربیاد تا چند بار فرم ارسال نکنه و تا زمان بازگشت جواب از سرور منتظر بمونه ( مثل همون کاری که با کد زیر تو برنامه های ویندوزی می کنیم )


button.Enable = false;

راه های زیادی رو امتحان کردم از شبیه سازی متدهای ارسال فرمی که خود دات نت می سازه تا...

که البته این روش شبیه سازی بد نبود اما اگر چندتا کلید داشتی مشکل ایجاد می کرد چون باید کلیدها از نوع html گذاشتی از اونجا که این کلیدها خنگ تشریف دارن، موقع پست بک مشکل داری که از کدام یک پست بک شده

به هر حال بالاخره تو سایت codeproject جواب پیدا کردم که خیلی ساده و صفحه کدهای زیادی پیدا نمی کنه و به راحتی می تونی از کلیدهای asp استفاده کنی و پست بک کنترل کنی

فرض کنید یک کلید به نام Button1 داریم کافی این کد اضافه کنید:


#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
Button1.Attributes.Add("onclick","javascript:" +
Button1.ClientID + ".disabled=true;" +
this.GetPostBackEventReference(Button1));
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}

این هم لینک اصلی (http://www.codeproject.com/KB/aspnet/DisableSubmitButton.aspx)

تو ضمیمه پرژه ای که تو سایت codeproject بود برای راحتی کار دوستان گذاشتم.