PDA

View Full Version : Disable شدن دكمه هنگام Post Back در Ajax



Rambod
دوشنبه 08 مهر 1387, 23:16 عصر
من توي فرمم دو تا Update Panel دارم و دو تا هم Update Progress.
ميخوام وقتي UpdatePanel اولي در حال PostBack شدنه، دكمه موجود در اين UpdatePanel بصورت غير فعال بشه و عنوانش هم به Loading تغيير بكنه. يه كمي تو نت گشتم اين كد رو پيدا كردم:



<script language="javascript">

// Get the PageRequestManager instance
var pageRequest = Sys.WebForms.PageRequestManager.getInstance();
// Add the beginRequest Event
pageRequest.add_beginRequest(beginRequest);
// Add the endRequest Event
pageRequest.add_endRequest(endRequest)

// Handle the Begin event
function beginRequest(sender, eventArgs)
{
// Get the button
var Button1 = $get('<%=Button1.ClientID %>')
// Set its text to Loading
Button1.value = 'Loading';
// Disable the Button
Button1.disabled = true
}

function endRequest(sender, eventArgs)
{
// Get the Button
var Button1 = $get('<%=Button1.ClientID %>')
// Enable it
Button1.disabled = false;
}

</script>



و گفته كه اين كد رو درست بعد از ScriptManager بايد قرار بدي. من هم اين كار رو كردم و درست هم كار ميكنه.
اما يه مشكل دارم. اون هم اينه كه وقتي UpdatePanel دومي كه هيچ ربطي به اولي نداره، بخواد PostBack بشه، باز هم اين دكمه بصورت غير فعال درمياد. در حالي كه اين دكمه اصولاً هيچ ربطي به اين UpdatePanel دومي نداره و در زمان PostBack اين UpdatePanel نبايد تغييري بكنه.
كسي راه حلي نداره؟!

Rambod
دوشنبه 08 مهر 1387, 23:32 عصر
همين الان يه راه ديگه براي اين كار پيدا كردم! :D
خيلي ساده‌تر از روش قبليه و جواب هم ميده. البته من قبلاً اين كار رو كردم ولي جواب نداد چون نكته‌ي مهم استفاده از UseSubmitBehavior="false" هست كه من ازش استفاده نمي‌كردم!




<asp:Button runat="server" ID="BtnSubmit"
OnClientClick="this.disabled = true; this.value = 'Loading...';"
UseSubmitBehavior="false"
OnClick="BtnSubmit_Click"
Text="Submit Me!" />