Selected value of combobox

3 posts, 0 answers
  1. Senthil ramna
    Senthil ramna avatar
    67 posts
    Member since:
    Mar 2010

    Posted 13 Aug 2010 Link to this post

    How to get selected value of Radcombobox?
    Like in Dropdownlist when we say
    string str = Dropdownlist1.SelectedValue.ToString();

    in str we can get the selected value of the dropdownlist, so the same way how can i get the selected value of Radcombobox.
    cause it has the property selectedvalue but i am getting null there, can anyone help me how to do this.
    i want this because based on the selected value of the first Radcombobox i am loading the next so inputs required......
  2. Shinu
    Shinu avatar
    17764 posts
    Member since:
    Mar 2007

    Posted 13 Aug 2010 Link to this post

    Hello.


    The code "RadComboBox3.SelectedValue.ToString()" worked well for me. Could you provide some more information about the scenario that you are trying?


    Have you missed setting Value property of RadComboBoxItem?
                  <Items>
                         <telerik:RadComboBoxItem Text="Item1" Value="1" />  . . .



    -Shinu.
  3. Senthil ramna
    Senthil ramna avatar
    67 posts
    Member since:
    Mar 2010

    Posted 13 Aug 2010 Link to this post

    Okay this is the flow of how this works
    I have three comboboxes okay
    one is for Manager upon selection of which the Group Leader loads upon selection of which the related Associate Loads.
    I was doing all this using Dropdownlist by setting the Autopostback feature as true and upon selectedindex change the corresponding Dropdown lists were loaded.
    But i wanted to use RadComboboxe's ItemsRequested feature as this will make sure that postback doesn't happen and delivers better user experience.
    this is how my source page looks like:

    <telerik:RadComboBox ID="ddlTM" AppendDataBoundItems="true" Width="150px" OnClientSelectedIndexChanging="LoadGL"                                              runat="server" onitemsrequested="ddlTM_ItemsRequested" Skin="Web20" DropDownWidth="240px">                                                                </telerik:RadComboBox>
      
    <telerik:RadComboBox ID="ddlGL" AppendDataBoundItems="true" Width="150px" OnClientItemsRequested="ItemsLoaded"                                             DropDownWidth="240px" OnClientSelectedIndexChanging="LoadAssociate" runat="server" Skin="Web20" 
    onitemsrequested="ddlGL_ItemsRequested">
    <Items>                                                                                  <telerik:RadComboBoxItem Text="Select" />
    </Items>
    </telerik:RadComboBox>
      
    <telerik:RadComboBox ID="ddlAssc" AppendDataBoundItems="true" Width="150px" DropDownWidth="240px"                                                           runat="server" Skin="Web20" onitemsrequested="ddlAssc_ItemsRequested" 
    OnClientItemsRequested="ItemsLoaded">
    <Items>                                                                                  <telerik:RadComboBoxItem Text="Select" />                    
    </Items>
    </telerik:RadComboBox>

    this is how my javascript looks like :

    <script type="text/javascript" language="javascript">
        //global variables 
    var comboGL;
    var comboAssociate;
      
    function pageLoad()
    {
        // initialize the global variables
        // in this event all client objects 
        // are already created and initialized 
        comboGL = $find("<%= ddlGL.ClientID %>");    
        comboAssociate = $find("<%= ddlAssc.ClientID %>");
    }
      
    function LoadGL(combo, eventArqs)
    {    
        var item = eventArqs.get_item();
        comboGL.set_text("Loading...");
        comboAssociate.clearSelection();
          
        // if selected
        if (item.get_index() > 0)
        {
            comboGL.requestItems(item.get_value(), false);                                
        }
        else
        {
         // the -Select- was chosen
            comboGL.set_text(" ");
            comboGL.clearItems();
              
            comboAssociate.set_text(" ");
            comboAssociate.clearItems();
        }
    }
      
    function LoadAssociate(combo, eventArqs)
    {            
        var item = eventArqs.get_item();
        comboAssociate.set_text("Loading...");
          
        if (item.get_index() > 0)
        {
            comboAssociate.requestItems(item.get_value(), false);
        }    
    }
      
    function ItemsLoaded(combo, eventArqs)
    {    
        if (combo.get_items().get_count() > 0)
        {
         // pre-select the first item
            combo.set_text(combo.get_items().getItem(0).get_text());
            combo.get_items().getItem(0).highlight();
        }
        combo.showDropDown();
    }
    </script>

    and i am calling the pageLoad function in window.onload
    <script language="javascript" type="text/javascript">
    window.onload=pageLoad;
    </script>

    This is how my code behind looks like :

    protected void ddlTM_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
        {
            bindTM();
        }
      
        protected void ddlGL_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
        {
            bindGL();
        }
      
        protected void ddlAssc_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
        {
            bindAssociate();
        }

    where in the methods contain this :

    public void bindTM()
        {
              
            try
            {
                DC.GetGLRadCombo(GSV.GetProjectCode(), ddlTM.SelectedValue.ToString(), ddlGL, "Select");       
            }
            catch(Exception ex)
            {
                Page.ClientScript.RegisterStartupScript(base.GetType(), "myscript", GC.Message(ex.Message.ToString()));
                EH.SendException_Mail(ex);
            }      
        }
      
        public void bindGL()
        {
            string str = string.Empty;
            //str = ddlTM.SelectedValue.ToString();
            str = ddlTM.SelectedValue;        
              
             try
             {
                 DC.GetAsscRadCombo(GSV.GetProjectCode(), ddlTM.SelectedValue.ToString(), ddlGL.SelectedValue.ToString(), ddlAssc, "Select");
             }
             catch (Exception ex)
             {
                 Page.ClientScript.RegisterStartupScript(base.GetType(), "myscript", GC.Message(ex.Message.ToString()));
                 EH.SendException_Mail(ex);
             }
        }
      
        public void bindAssociate()
        {
            try
            {
                BindGridView();
            }
            catch (Exception ex)
            {
                Page.ClientScript.RegisterStartupScript(base.GetType(), "myscript", GC.Message(ex.Message.ToString()));
                EH.SendException_Mail(ex);
            }
        }

    wherein DC(dataclass).GetGLRadCombo contains this :

    public void GetGLRadCombo(string strProjectCode, string strTM, RadComboBox ddl, string strDefaultVal)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionClass.ConnectionString))
            {
                using (SqlDataAdapter da = new SqlDataAdapter("Gems_Sp_GetGls", conn))
                {
                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    da.SelectCommand.CommandTimeout = 0;
                    da.SelectCommand.Parameters.AddWithValue("@Project_code", strProjectCode);
                    da.SelectCommand.Parameters.AddWithValue("@TM", strTM);
                    ds = new DataSet();
                    da.Fill(ds);
                    ddl.Items.Clear();
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        ddl.DataSource = ds;
                        ddl.DataTextField = "GL";
                        ddl.DataValueField = "Associate_id";
                        ddl.DataBind();
                    }
                    ddl.Items.Insert(0, new RadComboBoxItem(strDefaultVal));
                }
            }
        }

    and DC(Dataclass).GetAsscRadCombo contains

    public void GetAsscRadCombo(string strProjectCode, string strTM, string strGL, RadComboBox ddl, string strDefaultVal)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionClass.ConnectionString))
            {
                using (SqlDataAdapter da = new SqlDataAdapter("Gems_Sp_GetAssc", conn))
                {
                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    da.SelectCommand.CommandTimeout = 0;
                    da.SelectCommand.Parameters.AddWithValue("@Project_code", strProjectCode);
                    da.SelectCommand.Parameters.AddWithValue("@TM", strTM);
                    da.SelectCommand.Parameters.AddWithValue("@GL", strGL);
                    ds = new DataSet();
                    da.Fill(ds);
                    ddl.Items.Clear();
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        ddl.DataSource = ds;
                        ddl.DataTextField = "associate";
                        ddl.DataValueField = "Associate_id";
                        ddl.DataBind();
                    }
                    ddl.Items.Insert(0, new RadComboBoxItem(strDefaultVal));
                }
            }
        }

    so here as you can see based on the selected value of the TM in bindTM i am binding the Gl then the associate.
    any help is appreciated.



Back to Top