This is a migrated thread and some comments may be shown as answers.

Can I cancel the ValueChange event at client side?

3 Answers 101 Views
Slider
This is a migrated thread and some comments may be shown as answers.
Jeffery
Top achievements
Rank 1
Jeffery asked on 26 Mar 2008, 04:25 AM
Dear support,

I need be able to cancel the Slide change in some condition.  I have try the following code:

function HandleClientValueChange(sender, eventArgs) {
 var ok = false;
 // Do some caculation
 if(!ok) {
  sender.set_Value(eventArgs.get_oldValue());
  return;
 }
}

Unfortunatly it does not work.  Is there any way I can cancel out slider's change at client side?

Thanks,
Jeffery

3 Answers, 1 is accepted

Sort by
0
Obi-Wan Kenobi
Top achievements
Rank 1
answered on 26 Mar 2008, 01:52 PM
If you handle OnClientSlideStart and OnClientSlideEnd events you will achieve your goal. E.g.:
<head runat="server">  
    <title>Untitled Page</title> 
    <script type="text/javascript">  
         var oldValue;  
         function OnClientSlideStart(currentSlider,args)  
         {              
          oldValue = currentSlider.get_value();  
             
         }  
         function OnClientSlideEnd(currentSlider,args)  
         {  
            var ok = false;  
            if(!ok)  
            {  
                currentSlider.set_value(oldValue);  
            }   
         }  
    </script> 
      
      
</head> 
<body> 
    <form id="form1" runat="server">  
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    <div> 
    <telerik:RadSlider ID="RadSlider1" runat="server"   
    MinimumValue="0" MaximumValue="400" 
    OnClientSlideEnd = "OnClientSlideEnd" 
    OnClientSlideStart = "OnClientSlideStart" 
    /> 
    </div> 
    </form> 
</body> 
</html> 
 
0
Jeffery
Top achievements
Rank 1
answered on 27 Mar 2008, 01:55 AM
Thanks.  It works when I drag the handler.  Unfortunately it dose not work when I use Increase and Decrease handlers or just click on the slider.
0
Obi-Wan Kenobi
Top achievements
Rank 1
answered on 31 Mar 2008, 11:30 AM
I managed to handle all scenarios with the OnClientValueChange event:
<head runat="server">  
    <title>Untitled Page</title> 
    <script type="text/javascript">  
         var isSecond = false;  
         function OnClientValueChange(currentSlider,args)  
         {  
           if(isSecond == false)  
           {  
            var oldValue = args.get_oldValue();  
            //Tthis flag is used because set_value will fire the ClientValueChange event again  
            isSecond = true;  
            currentSlider.set_value(oldValue);             
           }  
           else  
           {  
           isSecond = false;  
           }  
             
         }  
    </script> 
      
      
</head> 
<body> 
    <form id="form1" runat="server">  
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    <div> 
    <telerik:RadSlider ID="RadSlider1" runat="server"   
    MinimumValue="0" MaximumValue="400" 
    Value = "50" 
    OnClientValueChange = "OnClientValueChange"   
    /> 
    </div> 
    </form> 
</body> 
</html> 
Tags
Slider
Asked by
Jeffery
Top achievements
Rank 1
Answers by
Obi-Wan Kenobi
Top achievements
Rank 1
Jeffery
Top achievements
Rank 1
Share this question
or