Hello,
I Have 3 comboboxes.
when selecting a value in combobox 1 it fills the values of combobox 2
now i want to fill the values of combobox 3 based on the selected values of combobox1 and combobox 2
How can I achieve this on clientside
I Have 3 comboboxes.
when selecting a value in combobox 1 it fills the values of combobox 2
now i want to fill the values of combobox 3 based on the selected values of combobox1 and combobox 2
How can I achieve this on clientside
5 Answers, 1 is accepted
0

Shinu
Top achievements
Rank 2
answered on 28 Mar 2012, 11:05 AM
Hi Mart,
Try the following code to fill value in the RadComboBox.
ASPX:
C#:
JS:
I tried this by referring into the following demo.
ComboBox / Related ComboBoxes
Thanks,
-Shinu.
Try the following code to fill value in the RadComboBox.
ASPX:
<
telerik:RadComboBox
ID
=
"RadComboBox1"
runat
=
"server"
OnClientSelectedIndexChanging
=
"LoadCustomerID"
EnableCheckAllItemsCheckBox
=
"true"
OnItemsRequested
=
"RadComboBox_ItemsRequested"
>
</
telerik:RadComboBox
>
<
telerik:RadComboBox
ID
=
"RadComboBox2"
runat
=
"server"
OnClientItemsRequested
=
"ItemsLoaded"
OnClientSelectedIndexChanging
=
"LoadOrderID"
EnableCheckAllItemsCheckBox
=
"true"
OnItemsRequested
=
"RadComboBox2_ItemsRequested"
>
</
telerik:RadComboBox
>
<
telerik:RadComboBox
ID
=
"RadComboBox3"
runat
=
"server"
OnClientItemsRequested
=
"ItemsLoaded"
EnableCheckAllItemsCheckBox
=
"true"
OnItemsRequested
=
"RadComboBox3_ItemsRequested"
>
</
telerik:RadComboBox
>
C#:
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
LoadCustomerID();
else
if
(!Page.IsCallback)
{
LoadOrderID(RadComboBox1.SelectedValue);
LoadProductID(RadComboBox2.SelectedValue);
}
}
protected
void
RadComboBox_ItemsRequested(
object
sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
LoadCustomerID();
}
protected
void
LoadCustomerID()
{
String ConnString = ConfigurationManager.ConnectionStrings[
"NorthwindConnectionString"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(
"SELECT * FROM Customers ORDER By CompanyName"
, conn);
DataTable dt =
new
DataTable();
adapter.Fill(dt);
RadComboBox1.DataTextField =
"CustomerID"
;
RadComboBox1.DataValueField =
"CustomerID"
;
RadComboBox1.DataSource = dt;
RadComboBox1.DataBind();
RadComboBox1.Items.Insert(0,
new
RadComboBoxItem(
"- Select.... -"
));
}
protected
void
RadComboBox2_ItemsRequested(
object
sender, RadComboBoxItemsRequestedEventArgs e)
{
LoadOrderID(e.Text);
}
protected
void
LoadOrderID(
string
continentID)
{
String ConnString = ConfigurationManager.ConnectionStrings[
"NorthwindConnectionString"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(
"SELECT * FROM Orders WHERE CustomerID=@CustomerID ORDER By CustomerID"
, conn);
adapter.SelectCommand.Parameters.AddWithValue(
"@CustomerID"
, continentID);
DataTable dt =
new
DataTable();
adapter.Fill(dt);
RadComboBox2.DataTextField =
"OrderID"
;
RadComboBox2.DataValueField =
"OrderID"
;
RadComboBox2.DataSource = dt;
RadComboBox2.DataBind();
}
protected
void
RadComboBox3_ItemsRequested(
object
sender, RadComboBoxItemsRequestedEventArgs e)
{
LoadProductID(e.Text);
}
protected
void
LoadProductID(
string
countryID)
{
String ConnString = ConfigurationManager.ConnectionStrings[
"NorthwindConnectionString"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(
"SELECT * FROM [Order Details] WHERE OrderID =@OrderID ORDER By ProductID"
, conn);
adapter.SelectCommand.Parameters.AddWithValue(
"@OrderID"
, countryID);
DataTable dt =
new
DataTable();
adapter.Fill(dt);
RadComboBox3.DataTextField =
"ProductID"
;
RadComboBox3.DataValueField =
"ProductID"
;
RadComboBox3.DataSource = dt;
RadComboBox3.DataBind();
}
JS:
<script type=
"text/javascript"
>
var
countriesCombo;
var
citiesCombo;
function
pageLoad() {
countriesCombo = $find(
"<%= RadComboBox2.ClientID %>"
);
citiesCombo = $find(
"<%= RadComboBox3.ClientID %>"
);
}
function
LoadCustomerID(sender, eventArgs) {
var
item = eventArgs.get_item();
countriesCombo.set_text(
"Loading..."
);
citiesCombo.clearSelection();
if
(item.get_index() > 0) {
countriesCombo.requestItems(item.get_value(),
false
);
}
else
{
countriesCombo.set_text(
" "
);
countriesCombo.clearItems();
citiesCombo.set_text(
" "
);
citiesCombo.clearItems();
}
}
function
LoadOrderID(sender, eventArgs) {
var
item = eventArgs.get_item();
citiesCombo.set_text(
"Loading..."
);
citiesCombo.requestItems(item.get_value(),
false
);
}
function
ItemsLoaded(sender, eventArgs) {
if
(sender.get_items().get_count() > 0) {
sender.set_text(sender.get_items().getItem(0).get_text());
sender.get_items().getItem(0).highlight();
}
sender.showDropDown();
}
</script>
I tried this by referring into the following demo.
ComboBox / Related ComboBoxes
Thanks,
-Shinu.
0

Mart
Top achievements
Rank 1
answered on 28 Mar 2012, 11:31 AM
Hello,
This uses only input from combobox2 in query for combobox3
I need to get 2 parameters in query for combobox3
so in this case
SELECT * FROM [Order Details] WHERE OrderID =@OrderID AND CustomerID=@CustomerID ORDER By ProductID"
@OrderID is combobox2.selectedvalue and
@customerID is combobox1.selectedvalue
Hope you can help
Mart
This uses only input from combobox2 in query for combobox3
I need to get 2 parameters in query for combobox3
so in this case
SELECT * FROM [Order Details] WHERE OrderID =@OrderID AND CustomerID=@CustomerID ORDER By ProductID"
@OrderID is combobox2.selectedvalue and
@customerID is combobox1.selectedvalue
Hope you can help
Mart
0

Shinu
Top achievements
Rank 2
answered on 28 Mar 2012, 01:03 PM
Hi Mart,
Try the following code snippet.
C#:
Thanks,
-Shinu.
Try the following code snippet.
C#:
protected
void
RadComboBox3_ItemsRequested(
object
sender, RadComboBoxItemsRequestedEventArgs e)
{
LoadProductID(RadComboBox2.SelectedValue, RadComboBox1.SelectedValue);
}
protected
void
LoadProductID(
string
countryID,
string
ProductID)
{
................
adapter.SelectCommand =
new
SqlCommand(
"SELECT * FROM [Order Details] WHERE OrderID =@OrderID AND CustomerID=@CustomerID ORDER By ProductID"
, conn);
adapter.SelectCommand.Parameters.AddWithValue(
"@OrderID"
, countryID);
adapter.SelectCommand.Parameters.AddWithValue(
"@CustomerID"
, CustomerID);
................
}
Thanks,
-Shinu.
0

Mart
Top achievements
Rank 1
answered on 28 Mar 2012, 01:44 PM
Hello,
First thank yoy for your help.
This is not working because there is no postback to the server.
I need to get radcombo1.valueselected from client within javascript
Mart
First thank yoy for your help.
This is not working because there is no postback to the server.
I need to get radcombo1.valueselected from client within javascript
Mart
0

Shinu
Top achievements
Rank 2
answered on 29 Mar 2012, 06:10 AM
Hi Mart,
Since we have to bind RadComboBox to a DataSource we need a server postback. So please make sure that you set AutoPostBack to true.
Thanks,
-Shinu.
Since we have to bind RadComboBox to a DataSource we need a server postback. So please make sure that you set AutoPostBack to true.
Thanks,
-Shinu.