RadComboBox SelectedValue not updating if selecting item with same text

6 posts, 0 answers
  1. Callon Campbell
    Callon Campbell avatar
    2 posts
    Member since:
    Aug 2012

    Posted 13 Aug 2010 Link to this post

    I have 2 drop downs publisher and heading. If I change the publisher and  select a heading with  a different value but the same text as the previously selected heading the selected value does not update. But if I select a completely different heading with different text and value it works fine.

    Here is my code


    function PublisherChanged(combo, eventArqs)
    {   
        directories.clearSelection()
        headings.clearSelection();
        directories.clearItems(); 
        headings.clearItems(); 
        directories.requestItems('',false);
        headings.requestItems('',false);
                       
    }



      private void PopulateHeadings(string publisherName, string text)
            {
              
                if (publisherName == "") return;
                DataTable data = GetHeadings(publisherName, text);
                bool noResults = false;
                if (data.Rows.Count == 0)
                {
                    noResults = true;
                    DataRow row = data.Rows.Add();
                    row["value"] = "[No Results]";
                    row["Id"] = "0";
                }

                headings.DataSource = GetTopN(data, 15);
                headings.DataTextField = "value";
                headings.DataValueField = "Id";
                headings.DataBind();


                if (noResults)
                {
                    headings.Items[0].Enabled = false;
                }
             
            }

    Is the a bug in the control or am I using the control incorrectly?
  2. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 19 Aug 2010 Link to this post

    Hello Callon Campbell,

    I used the code snippets provided to create a test page and tried reproduce the issue - but unfortunately without success. On my side the RadComboBox updates its selected value correctly - please take a look at this demonstration video. Could you please find the sample attached and give it a try? 

    In order to help you we need more information - could you please explain your implementation in more details and send us simplified running page that reproduces the issue?

    Can we continue this conversation in the support ticket (ID: 339560) that you have opened?
    Thank you in advance.

    Greetings,
    Kalina
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Billy Hasan
    Billy Hasan avatar
    18 posts
    Member since:
    May 2006

    Posted 08 Sep 2010 Link to this post

    Did this get resolved? I am having the same issue. I reviewed the linked video, my situation does not have a "show value" button, the second drop down does a post back and that displays the selected value.

    <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="Test.ascx.vb" Inherits="NewInnovations.Demographics.Web.Test" %>
     
    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
     
    <telerik:RadComboBox ID="RadComboBox2" runat="server" EmptyMessage="Select a Person"
        EnableLoadOnDemand="true" AppendDataBoundItems="false" AutoPostBack="true" DataTextField="Name"
        DataValueField="RecordID" ShowMoreResultsBox="true" EnableVirtualScrolling="false"
        OnClientDropDownOpening="onDropDownOpening" OnItemsRequested="RadComboBox2_ItemsRequested"
        MarkFirstMatch="true" CausesValidation="False">
    </telerik:RadComboBox>
     
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
     
    <script type="text/javascript">
        function onDropDownOpening(sender) {
            var attributes = sender.get_attributes();
            if (attributes.getAttribute("DefaultItem") == "true") {
                sender.requestItems("", false);
                attributes.setAttribute("DefaultItem", "false");
            } else if (sender.get_items().get_count() == 0) {
                sender.requestItems("", false);
            }
        }
    </script>

    Imports Telerik.Web.UI
     
    Public Class Test
        Inherits System.Web.UI.UserControl
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If MyBase.IsPostBack = False Then
                'drop down list (selected person)
                RadComboBox2.Attributes.Add("DefaultItem", "true")
                RadComboBox2.Items.Add(New RadComboBoxItem("Billy 1", "1"))
            End If
        End Sub
     
        Protected Sub RadComboBox2_ItemsRequested(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs) Handles RadComboBox2.ItemsRequested
            '
            Dim thePeople As New List(Of Object)
            thePeople.Add(New With {.RecordID = 1, .Name = "Billy 1"})
            thePeople.Add(New With {.RecordID = 2, .Name = "Billy 2"})
            thePeople.Add(New With {.RecordID = 3, .Name = "Billy 2"})
            thePeople.Add(New With {.RecordID = 4, .Name = "Billy 4"})
            '
            RadComboBox2.DataSource = thePeople
            RadComboBox2.DataBind()
            '
            e.EndOfItems = True 'stops "MoreResultsBox" from calling this event again
            '
            e.Message = Me.RadComboBox2.Items.Count & " People"
        End Sub
     
        Private Sub RadComboBox2_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles RadComboBox2.SelectedIndexChanged
            Me.Label1.Text = e.Value
        End Sub
    End Class
  5. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 14 Sep 2010 Link to this post

    Hello Billy Hasan,

    I used the code provided and created a sample page in order to reproduce the issue with our latest version - Telerik.Web.UI 2010.2.826.20. On my side your code works properly and items with same text are selected correctly - please take a look at this demonstration video.

    Let me suggest you download our latest version.

    Greetings,
    Kalina
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  6. Billy Hasan
    Billy Hasan avatar
    18 posts
    Member since:
    May 2006

    Posted 22 Oct 2010 Link to this post

    Alright, I figured out what the problem is. You have to do a redirect on the page in order for it to no longer work. Also I am using version 2010.2 929

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
     
    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
     
            <telerik:RadComboBox ID="RadComboBox2" runat="server" EmptyMessage="Select a Person"
                EnableLoadOnDemand="true" AppendDataBoundItems="false" AutoPostBack="true" DataTextField="Name"
                DataValueField="RecordID" ShowMoreResultsBox="true" EnableVirtualScrolling="false"
                OnClientDropDownOpening="onDropDownOpening" OnItemsRequested="RadComboBox2_ItemsRequested"
                MarkFirstMatch="true" CausesValidation="False">
            </telerik:RadComboBox>
     
            <asp:Label ID="lblSelectedValue" runat="server"></asp:Label>
        </div>
        </form>
    </body>
    </html>
     
    <script type="text/javascript">
     
        function onDropDownOpening(sender) {
            var attributes = sender.get_attributes();
            if (attributes.getAttribute("DefaultItem") == "true") {
                sender.requestItems("", false);
                attributes.setAttribute("DefaultItem", "false");
            } else if (sender.get_items().get_count() == 0) {
                sender.requestItems("", false);
            }
        }
     
    </script>
    Imports Telerik.Web.UI
     
    Partial Class _Default
        Inherits System.Web.UI.Page
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If MyBase.IsPostBack = False AndAlso Request("Value") IsNot Nothing Then
                'drop down list (selected person)
                RadComboBox2.Attributes.Add("DefaultItem", "true")
                RadComboBox2.Items.Add(New RadComboBoxItem(Request("Text"), Request("Value")))
                '
                Me.lblSelectedValue.Text = Request("Value")
            End If
        End Sub
     
        Protected Sub RadComboBox2_ItemsRequested(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs) Handles RadComboBox2.ItemsRequested
            '
            Dim thePeople As New List(Of Object)
            thePeople.Add(New With {.RecordID = 1, .Name = "Billy1"})
            thePeople.Add(New With {.RecordID = 2, .Name = "Billy2"})
            thePeople.Add(New With {.RecordID = 3, .Name = "Billy2"})
            thePeople.Add(New With {.RecordID = 4, .Name = "Billy4"})
            '
            RadComboBox2.DataSource = thePeople
            RadComboBox2.DataBind()
            '
            e.EndOfItems = True 'stops "MoreResultsBox" from calling this event again
            '
            e.Message = Me.RadComboBox2.Items.Count & " People"
        End Sub
     
        Private Sub RadComboBox2_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles RadComboBox2.SelectedIndexChanged
            Dim url As String = String.Format("Default.aspx?Value={0}&Text={1}", e.Value, e.Text)
            Response.Redirect(url)
        End Sub
    End Class
  7. Kalina
    Admin
    Kalina avatar
    918 posts

    Posted 28 Oct 2010 Link to this post

    Hi Billy Hasan,

    When you redirect the response - in fact you cause a new page load. This means that you lose the state of the page controls stored at ViewState - which is a normal ASP.NET behaviour.
    Let me recommend you revise the approach that you use in your implementation.

    Kind regards,
    Kalina
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017