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

RadTextBox: set_value and onchange create Loop

2 Answers 259 Views
Input
This is a migrated thread and some comments may be shown as answers.
Jeremy Yoder
Top achievements
Rank 1
Jeremy Yoder asked on 06 Mar 2012, 12:05 AM

My RadTextBox has the onchange value set. When the user enters a value, I look up a value on our DB, which returns a value, with which I use set_value to either blank out the RadTextBox or assign it a different value.

But when I use set_value for either reason, it kicks off the onchange event again, creating a loop, which calls our DB 100's of times before finally stopping. How can I prevent that?

2 Answers, 1 is accepted

Sort by
0
Vasil
Telerik team
answered on 08 Mar 2012, 12:51 PM
Hi Jeremy,

The OnValueChanged event should be fired every time when you use set_value() method. So to avoid recursion you just need to set some flag that to change when handling the event. See the code-snippet below:

<script type="text/javascript">
 
  function valueChanged(sender, args)
  {
    if (sender.internalValueSet)
    {
      //this time the event was fired because changing the value manually
      return;
    }
    else
    {
      var value = args.get_newValue();
      //make make some call to your database..
      var changedValue = "some new value";
 
      sender.internalValueSet = true;
      sender.set_value(changedValue);
      sender.internalValueSet = false;
    }
  }
</script>
<telerik:RadTextBox runat="server" ClientEvents-OnValueChanged="valueChanged">
</telerik:RadTextBox>

I hope this helps.

All the best,
Vasil
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
Jeremy Yoder
Top achievements
Rank 1
answered on 09 Mar 2012, 03:23 PM

That's what I started doing to get around it, but I guess I was hoping for something a bit more elegant. Thanks.
Tags
Input
Asked by
Jeremy Yoder
Top achievements
Rank 1
Answers by
Vasil
Telerik team
Jeremy Yoder
Top achievements
Rank 1
Share this question
or