PDA

View Full Version : غير فعال كردنbottumبعد از كليك



sama552
یک شنبه 23 آبان 1389, 09:09 صبح
با سلام
من يك bottumدارم كه مي خوام براي چند ثانيه بعد از كليك كاربر غير فعال بشه وبعداز همون چند ثانيه دوباره فعال بشه
لطفا اگه كسي ميدون كمك كنه

lord_viper
یک شنبه 23 آبان 1389, 09:27 صبح
شما باید از کدهای جاوا اسکریپت استفاده کنی

Mohandes2009
یک شنبه 23 آبان 1389, 09:43 صبح
اول دستورات enabel را false کن آخر همه دستورات true کن!

Kia_MLS
یک شنبه 23 آبان 1389, 10:36 صبح
اول دستورات enabel را false کن آخر همه دستورات true کن!

دوست عزیز احتمالا منظور شما کدهای سمت سرور هست، اگه اینطوره اشتباست!!!
دکمه باید بعد از کلیک در سمت کلاینت غیر فعال شه، عملیات سمت سرور انجام شه، بعد از بازگشت به سمت کلاینت دکمه فعال شه

اما مسئبه اینجاست که با غیر فعال کردن دکمه اصلا فرم به سمت سرور فرستاده نمیشه!!!
حالا چه کار کنیم؟!!!

صورت مسئله رو یه کم تغییر میدیم:
کاربر روی دکمه کلیک میکنه، برنامه سمت سرور مشغول کارای خودش میشه، اگر قبل از اینکه سمت سرور کارمون تمام بشه کاربر مجددا روی دکمه کلیک کرد به اون پیغام میدیم که صبر من

اینم کدش:


<body>
<form id="form1" runat="server">
<asp:HiddenField runat="server" ID="EnableBtn" Value="1" />
<div>
<asp:Button runat="server" ID="btnAction" OnClientClick="return(DisableBtn())"
text="Go" onclick="btnAction_Click" />
</div>
</form>
<script type="text/javascript" language="javascript">
function DisableBtn() {
var obj = document.getElementById("<%= EnableBtn.ClientID %>");
if (obj.value == '0') {
alert('Please wait ...');
return (false);
}
else {
obj.value = '0';
return (true);
}
}
</script>

</body>

sama552
یک شنبه 23 آبان 1389, 10:36 صبح
شما باید از کدهای جاوا اسکریپت استفاده کنی
ممنون شما كدي در اين رابطه داريد؟

Kia_MLS
یک شنبه 23 آبان 1389, 10:39 صبح
اوه یادم رفت بگم: در سمت سرور بعد از اینکه کارت تمام شد مقدار اون HiddenField رو به 1 برگردون. اگر این کارو نکنی دکمه شما غیر فعال باقی میمونه

مثال:


protected void btnAction_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(9999);
Title = "Finish";
EnableBtn.Value = "1";
}

sama552
یک شنبه 23 آبان 1389, 14:23 عصر
اوه یادم رفت بگم: در سمت سرور بعد از اینکه کارت تمام شد مقدار اون HiddenField رو به 1 برگردون. اگر این کارو نکنی دکمه شما غیر فعال باقی میمونه

مثال:


protected void btnAction_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(9999);
Title = "Finish";
EnableBtn.Value = "1";
}

دوست عزيز
از راهنماييت خيلي ممنونم

Mohandes2009
یک شنبه 23 آبان 1389, 14:39 عصر
دوست عزیز احتمالا منظور شما کدهای سمت سرور هست، اگه اینطوره اشتباست!!!
دکمه باید بعد از کلیک در سمت کلاینت غیر فعال شه، عملیات سمت سرور انجام شه، بعد از بازگشت به سمت کلاینت دکمه فعال شه

اما مسئبه اینجاست که با غیر فعال کردن دکمه اصلا فرم به سمت سرور فرستاده نمیشه!!!
حالا چه کار کنیم؟!!!



مگه وقتی کلیک میشه خط به خط اجرا نمیشه کد؟
خب اول غیر فعال میکنه بعد عملیات خط بعد را انجام میده!!!!!:متفکر:

Kia_MLS
یک شنبه 23 آبان 1389, 14:46 عصر
مگه وقتی کلیک میشه خط به خط اجرا نمیشه کد؟
خب اول غیر فعال میکنه بعد عملیات خط بعد را انجام میده!!!!!:متفکر:

درسته، اما این غیر فعال شدن و فعال شدن در سمت سرور انجام میشه و کاربر در سمت کلاینت این غیر فعال شدن و فعال شدن را متوجه نمیشه

این اتفاق باید در سمت کلاینت انجام شه که جلوی کلیک مجدد کاربر گرفته بشه

alonemm
یک شنبه 23 آبان 1389, 20:16 عصر
میتونی از یک timer و یک updatepanel استفاده کنید و پس از کلیک timer رو فعال و دکمه رو غیر فعال کنید سپس بعد از پنج ثانیه به حالت اول برگردونید.
فقط interval==1000

sama552
دوشنبه 24 آبان 1389, 11:20 صبح
میتونی از یک timer و یک updatepanel استفاده کنید و پس از کلیک timer رو فعال و دکمه رو غیر فعال کنید سپس بعد از پنج ثانیه به حالت اول برگردونید.
فقط interval==1000
ممنون
يعني اين عمليات سمت سرور انجام ميشه وجاوااسكريپت لازم نيست
لطف مي كنيد يك نمونه از كدش را بگذاريد