What I am trying to do is to have a country combobox that updates a state/region combobox, but if the country has no known state/region then hid the combobox and show a RadInput box. I have the cascading drop downs working but cannot get it to hide the combobox and display the text box. any help would be appreciated.
3 Answers, 1 is accepted
0
Hello Kris,
Here are the errors in your code:
First, sState is an asp textbox, so you cannot access it on the client with $find method - it's used only to get the client-side object of RadControls. I suggest you replace it with RadTextBox:
And the other problem is that this textbox is set Visible="false" on the server, so it's not rendered on the page and cannot be accessed on the client. To fix this you should set it invisible on the client in Page_Load:
I've attached my test page for a reference.
Greetings,
Yana
the Telerik team
Here are the errors in your code:
First, sState is an asp textbox, so you cannot access it on the client with $find method - it's used only to get the client-side object of RadControls. I suggest you replace it with RadTextBox:
<
telerik:RadTextBox
ID
=
"sState"
MaxLength
=
"20"
Width
=
"150px"
runat
=
"server"
/>
And the other problem is that this textbox is set Visible="false" on the server, so it's not rendered on the page and cannot be accessed on the client. To fix this you should set it invisible on the client in Page_Load:
function
pageLoad() {
// initialize the global variables
// in this event all client objects
// are already created and initialized
sStatesCombo = $find(
"<%= frm_sState.ClientID%>"
);
sStateText = $find(
"<%=sState.ClientID %>"
);
sStateText.set_visible(
false
);
}
I've attached my test page for a reference.
Greetings,
Yana
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
0

Kris
Top achievements
Rank 1
answered on 09 Sep 2010, 04:47 PM
Thanks Yana,
That as very helpfull. One more question on this issue. I trying to make the sStateText visible is the RadComboBox does not have any rows, not sure this is correct I get mixed results.
this is the line I'm not sure of:
That as very helpfull. One more question on this issue. I trying to make the sStateText visible is the RadComboBox does not have any rows, not sure this is correct I get mixed results.
this is the line I'm not sure of:
if (sStatesCombo.get_items().get_count() > 0)
<
tr
>
<
td
colspan
=
"2"
class
=
"t12_BlackBold"
><
div
align
=
"right"
>
Country: <
span
class
=
"t12_red"
>*</
span
>
</
div
></
td
>
<
td
><
div
align
=
"left"
>
<
telerik:RadComboBox
ID
=
"frm_sCountry_cd"
Runat
=
"server"
DataTextField
=
"sCountry"
DataValueField
=
"sCountry_cd"
EmptyMessage
=
"-Select Country-"
ErrorMessage
=
"Required field."
Skin
=
"Outlook"
Width
=
"180px"
DropDownWidth
=
"240px"
MaxHeight
=
"300px"
onclientselectedindexchanged
=
"LoadStates"
OnItemsRequested
=
"frm_sCountry_cd_ItemsRequested"
>
</
telerik:RadComboBox
>
</
div
></
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
class
=
"t12_BlackBold"
><
div
align
=
"right"
>
State/Region: <
span
class
=
"t12_red"
>*</
span
>
</
div
></
td
>
<
td
><
div
align
=
"left"
>
<
telerik:RadComboBox
ID
=
"frm_sState"
Runat
=
"server"
DataTextField
=
"sStateDesc"
DataValueField
=
"sState"
EmptyMessage
=
"-Select State-"
ErrorMessage
=
"Required field."
Skin
=
"Outlook"
Width
=
"180px"
MaxHeight
=
"300px"
DropDownWidth
=
"200px"
OnClientItemsRequested
=
"ItemsLoaded"
OnItemsRequested
=
"frm_sState_ItemsRequested"
>
</
telerik:RadComboBox
>
<
telerik:RadTextBox
ID
=
"sStateTxt"
Runat
=
"server"
Skin
=
"Outlook"
Width
=
"100px"
MaxLength
=
"20"
>
</
telerik:RadTextBox
>
</
div
></
td
>
</
tr
>
var sStatesCombo;
var sStateText;
function pageLoad()
{
// initialize the global variables
// in this event all client objects
// are already created and initialized
sStatesCombo = $find("<%= frm_sState.ClientID%>");
sStateText = $find("<%= sStateTxt.ClientID %>");
//Hide State text boxes on new record.
sStateText.set_visible(false);
}
function LoadStates(combo, eventArqs)
{
var item = eventArqs.get_item();
sStatesCombo.set_text("Loading...");
// if a continent is selected
if (item.get_index() > -1)
{
// this will fire the ItemsRequested event of the
// countries combobox passing the sCountry_id as a parameter
sStatesCombo.requestItems(item.get_value(), false);
sStatesCombo.set_text("-Select State/Region-");
if (sStatesCombo.get_items().get_count() > 0)
{
sStateText.set_visible(false);
sStatesCombo.set_visible(true);
}
else
{
sStateText.set_visible(true);
sStatesCombo.clearItems();
sStatesCombo.set_visible(false);
}
}
else
{
// the -Select a Country item was chosen
sStatesCombo.set_text("-Select Country first-");
sStatesCombo.clearItems();
}
}
0
Hello Kris,
The if-clause
if (sStatesCombo.get_items().get_count() > 0)
will be true when there *are* Items in the RadComboBox. I guess you need the code the other way around, i.e. show the TextBox when the above condition is true and hide it otherwise.
I hope I am not missing something.
All the best,
Simon
the Telerik team
The if-clause
if (sStatesCombo.get_items().get_count() > 0)
will be true when there *are* Items in the RadComboBox. I guess you need the code the other way around, i.e. show the TextBox when the above condition is true and hide it otherwise.
I hope I am not missing something.
All the best,
Simon
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