radcombobox loses values even if none is selected

4 posts, 0 answers
  1. Carlos
    Carlos avatar
    96 posts
    Member since:
    Apr 2013

    Posted 16 Dec 2016 Link to this post

    Hi all,

    So im having a problem with de radcombobox, i have a combobox getting values from the database, no problem there, the problem starts when i selecta a option, and then is i select the combobox, and no value is selected, and i press autside de combobox to get out of the selection the box loses the value previously selected.

     

    Does anybody ave any ideas?

     

  2. Patrick
    Admin
    Patrick avatar
    227 posts

    Posted 16 Dec 2016 Link to this post

    Hello Carlos,

    There are a few ways to get a selected value from a RadComboBox.  Here are two approaches:

    1.  Server-side: 

    By using the SelectedIndexChanged event, you can get the value of the selected item from the EventArgs.
    protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        ServerLabel.Text = "From Server-Side: You selected " + e.Text;
    }

    2. Client-side:

    After the selected item has changed, the OnClientSelectedIndexChanged event will fire.  Use the get_Item() method and you will have access to the selected item.
    <script type="text/javascript">
        function OnClientSelectedIndexChanged(sender, eventArgs) {
            var item = eventArgs.get_item();
            var label = document.getElementById("ClientLabel");
            label.textContent = "From Client-side: You selected " + item.get_text();
        }
    </script>

    I've attached a project which demonstrates both approaches.

    I hope this helps clear things!

    Regards,
    Patrick
    Telerik by Progress
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
  3. Carlos
    Carlos avatar
    96 posts
    Member since:
    Apr 2013

    Posted 19 Dec 2016 in reply to Patrick Link to this post

    Hello, 

    The problem isnt getting the values from the combobox. The problem its the behavior os the combo, when clicked after a value is selected, and no value is selected.

  4. Patrick
    Admin
    Patrick avatar
    227 posts

    Posted 19 Dec 2016 Link to this post

    Hello Carlos,

    In order to show the item has been selected when opening the RadComboBox, you will need to do some additional logic.  Here are a couple of approaches:

    Client-side:
    Set the background color of the selected item during the OnClientSelectedIndexChanged Event.  If there is a previously selected item, create a variable to hold the past selected item and set its background color to "transparent".  
    <script type="text/javascript">
        var prevSelect;
     
        function OnClientSelectedIndexChanged(sender, eventArgs) {
            if (prevSelect != null) {
                prevSelect.get_element().style.backgroundColor = "transparent";
            
            var item = eventArgs.get_item();
            var selectedItem = sender.get_selectedItem();
            selectedItem.get_element().style.backgroundColor = "lightGreen";
            prevSelect = selectedItem;
        }
    </script>

    Server-side:
    This approach is the same idea as Client-side except a Session State is being used to hold the previously selected index.
    protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
     {
         if (Session["prevSelect"] != null)
         {
             int prevSelectIndex = (int)Session["prevSelect"];
             RadComboBox1.Items[prevSelectIndex].BackColor = System.Drawing.Color.Transparent;
         }
     
         var selectedItem = RadComboBox1.Items[RadComboBox1.SelectedIndex];
         selectedItem.BackColor = System.Drawing.Color.LightGreen;
         Session["prevSelect"] = RadComboBox1.SelectedIndex;
     }

    I've attached a zip file with 2 projects demonstrating each approach.  

    I hope this helps!

    Regards,
    Patrick
    Telerik by Progress
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Back to Top