Hello,
I am having trouble with the client-side settext() method.
It is never reaching my javascript function at all. I added a Window.alert to it, and it never happened....
Here is a sample of my code:
It's still always displaying the text of the item I last clicked, such as "One" "Two" or "Three"
EDIT: I have also tried it using a databound control and removing the "stopPropagation(event)" to no avail!
I am having trouble with the client-side settext() method.
It is never reaching my javascript function at all. I added a Window.alert to it, and it never happened....
Here is a sample of my code:
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function SetTextOfTheComboBox() { var combo = $find("<%=cmbDriveTrain.ClientID %>"); combo.SetText("Fuel Types"); } function stopPropagation(e) { e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); } } </script></telerik:RadCodeBlock><telerik:RadComboBox runat="server" ID="cmbDriveTrain" HighlightTemplatedItems="true" Skin="WebBlue" OnClientDropDownClosed="SetTextOfTheComboBox"> <Items> <telerik:RadComboBoxItem Text="One" Value="One" /> <telerik:RadComboBoxItem Text="Two" Value="Two" /> <telerik:RadComboBoxItem Text="Three" Value="Three" /> </Items> <ItemTemplate> <asp:CheckBox runat="server" ID="CheckBox" onclick="stopPropagation(event);" Text=""/> <%# DataBinder.Eval(Container, "Text") %> </ItemTemplate> </telerik:RadComboBox>It's still always displaying the text of the item I last clicked, such as "One" "Two" or "Three"
EDIT: I have also tried it using a databound control and removing the "stopPropagation(event)" to no avail!
5 Answers, 1 is accepted
0
Matthew
Top achievements
Rank 1
answered on 26 Aug 2010, 07:45 PM
The javascript is failing on the combo.settext("test"); line
I am able to make it work if I do this instead:
document.getElementById("ctl00_MainContent_cmbDriveTrain_Input").value = "test";
and specifically note the client id
I am able to make it work if I do this instead:
document.getElementById("ctl00_MainContent_cmbDriveTrain_Input").value = "test";
and specifically note the client id
0
Hi Matthew,
Let me suggest you add a “div” tag to wrap the controls nested in RadComboBox ItemTemplate and to call the “stopPropagation” function.
At the “onclick” event of the checkbox you can assign an event handler function to collect the texts of the selected RadComboBox items and set these texts at RadComboBox input.
More details about the approach used you can find at this online demo.
If you prefer to set a custom text at the RadComboBox input please use combo.set_text("Fuel Types"); instead of combo.SetText("Fuel Types");
Please find more details about RadComboBox client-side properties and methods here.
Regards,
Kalina
the Telerik team
Let me suggest you add a “div” tag to wrap the controls nested in RadComboBox ItemTemplate and to call the “stopPropagation” function.
At the “onclick” event of the checkbox you can assign an event handler function to collect the texts of the selected RadComboBox items and set these texts at RadComboBox input.
function SetTextOfTheComboBox() { var combo = $find("<%=cmbDriveTrain.ClientID %>"); //combo.SetText("Fuel Types"); combo.set_text("Fuel Types");}function stopPropagation(e) { e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); }}function onCheckBoxClick(chk) {
var combo = $find("<%= cmbDriveTrain.ClientID %>"); //holds the text of all checked items var text = ""; //holds the values of all checked items var values = ""; //get the collection of all items var items = combo.get_items(); //enumerate all items for (var i = 0; i < items.get_count(); i++) { var item = items.getItem(i); //get the checkbox element of the current item var chk1 = $get(combo.get_id() + "_i" + i + "_CheckBox"); if (chk1.checked) { text += item.get_text() + ","; values += item.get_value() + ","; } } //remove the last comma from the string text = removeLastComma(text); values = removeLastComma(values); if (text.length > 0) { //set the text of the combobox combo.set_text(text); } else { //all checkboxes are unchecked //so reset the controls combo.set_text(""); }}//this method removes the ending comma from a stringfunction removeLastComma(str) { return str.replace(/,$/, "");}<telerik:RadComboBox runat="server" ID="cmbDriveTrain" HighlightTemplatedItems="true" Skin="WebBlue" OnClientDropDownClosed="SetTextOfTheComboBox"> <Items> <telerik:RadComboBoxItem Text="One" Value="One" /> <telerik:RadComboBoxItem Text="Two" Value="Two" /> <telerik:RadComboBoxItem Text="Three" Value="Three" /> </Items> <ItemTemplate> <div onclick="stopPropagation(event)"> <asp:CheckBox runat="server" ID="CheckBox" onclick="onCheckBoxClick(this)" Text='<%# DataBinder.Eval(Container, "Text") %>' /> </div> </ItemTemplate></telerik:RadComboBox>If you prefer to set a custom text at the RadComboBox input please use combo.set_text("Fuel Types"); instead of combo.SetText("Fuel Types");
Please find more details about RadComboBox client-side properties and methods here.
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
0
Matthew
Top achievements
Rank 1
answered on 26 Aug 2010, 09:23 PM
Thank you Kalina,
Please note that I took this code directly from Telerik sample code for RadComboBox with CheckBoxes in
079551_RadComboBoxCheckBoxes_Web_ID.zip
Also, the SetTest property came from here:
http://www.telerik.com/help/aspnet/combobox/combo_client_model.html
The sample uses .SetText, not .Set_Text
Regardless, I have implemented your suggestions and it still is not working.
With the exception of the div and the onclick account (because I am not interested in that functionality at this time, but thank you for the suggestion!)
Note that the set_text (settext) method is failing. The page never sends the alert "3"
Also note my commented line in which I specifically set the value with the client ID works appropriately.
Please note that I took this code directly from Telerik sample code for RadComboBox with CheckBoxes in
079551_RadComboBoxCheckBoxes_Web_ID.zip
Also, the SetTest property came from here:
http://www.telerik.com/help/aspnet/combobox/combo_client_model.html
The sample uses .SetText, not .Set_Text
Regardless, I have implemented your suggestions and it still is not working.
With the exception of the div and the onclick account (because I am not interested in that functionality at this time, but thank you for the suggestion!)
Note that the set_text (settext) method is failing. The page never sends the alert "3"
Also note my commented line in which I specifically set the value with the client ID works appropriately.
<script type="text/javascript"> function SetTextOfTheComboBox() { alert("1");
var combo = $find("<%= cmbDriveTrain.ClientID %>"); alert("2");
combo.Set_Text("Drive Trains");
alert("3");
//document.getElementById("ctl00_MainContent_cmbDriveTrain_Input").value = "Drive Trains";
}</script><telerik:RadComboBox runat="server" ID="cmbDriveTrain" HighlightTemplatedItems="true" Skin="WebBlue" OnClientDropDownClosed="SetTextOfTheComboBox"> <Items> <telerik:RadComboBoxItem Text="One" Value="One" /> <telerik:RadComboBoxItem Text="Two" Value="Two" /> <telerik:RadComboBoxItem Text="Three" Value="Three" /> </Items> <ItemTemplate> <asp:CheckBox runat="server" ID="CheckBox" onclick="stopPropagation(event);" Text=""/> <%# DataBinder.Eval(Container, "Text") %> </ItemTemplate></telerik:RadComboBox> </div>0
Matthew
Top achievements
Rank 1
answered on 26 Aug 2010, 09:30 PM
Nevermind!
Thank you for your suggestion.
While I still think you should update your sample from this link:
http://www.telerik.com/help/aspnet/combobox/combo_client_model.html
You sample incorrectly says the use combo.SetText
Note the error in both capitalization and the missing underscore character.
Also, your sample does not suggest to use $find
Once I copied the code you provided the error I had was with case-sensetivity.
combo.Set_Text failed, but of course combo.set_text works
Thank you for you help!
EDIT: Ooops! looks like I was referencing the non-ajax ones, huh?
Thank you for your suggestion.
While I still think you should update your sample from this link:
http://www.telerik.com/help/aspnet/combobox/combo_client_model.html
You sample incorrectly says the use combo.SetText
Note the error in both capitalization and the missing underscore character.
Also, your sample does not suggest to use $find
Once I copied the code you provided the error I had was with case-sensetivity.
combo.Set_Text failed, but of course combo.set_text works
Thank you for you help!
EDIT: Ooops! looks like I was referencing the non-ajax ones, huh?
0
Hello Matthew,
Your supposition is correct – indeed you use samples and demos related to RadComboBox for ASP.NET.
Please find the demos related to RadComboBox for ASP.NET AJAX here.
Additionally - here you can find the online help articles related to RadComboBox for ASP.NET AJAX.
All the best,
Kalina
the Telerik team
Your supposition is correct – indeed you use samples and demos related to RadComboBox for ASP.NET.
Please find the demos related to RadComboBox for ASP.NET AJAX here.
Additionally - here you can find the online help articles related to RadComboBox for ASP.NET AJAX.
All the best,
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