I have a RadComboBox that is not databound at the server but is set up with WebServiceSettings to allow it to be loaded from the client. I am using this to load different items depending on the state of other controls on the page, but do not want load on demand functionality, instead I am calling requestItems() from client-side code when I require the items in the list to change:
When I then call $find("<%=cboCustomer.ClientID %>").requestItems("", false) the list is populated correctly from my web service, but the empty message disappears. if I select an item from the list it is displayed with the rcbEmptyMessage css class applied (sometimes multiple times) even though an item is selected. If I delete the text from the combobox the empty message doesn't reappear.
<telerik:RadComboBox ID="cboCustomer" runat="server" EmptyMessage="Select a customer" MarkFirstMatch="true" OnClientItemsRequesting="cboCustomer_ItemsRequesting"> |
<WebServiceSettings Path="Services/ComboData.asmx" Method="GetCustomers" /> |
</telerik:RadComboBox> |
<script type="text/javascript"> |
function cboCustomer_ItemsRequesting(sender, eventArgs) { |
var context = eventArgs.get_context(); |
context["SelectBy"] = getSelectBy(); |
} |
</script> |
When I then call $find("<%=cboCustomer.ClientID %>").requestItems("", false) the list is populated correctly from my web service, but the empty message disappears. if I select an item from the list it is displayed with the rcbEmptyMessage css class applied (sometimes multiple times) even though an item is selected. If I delete the text from the combobox the empty message doesn't reappear.
10 Answers, 1 is accepted
0
Tim
Top achievements
Rank 1
answered on 15 Apr 2009, 10:37 AM
A week and still no response. I'm surprised at this poor level of support. I have always found Telerik to be very responsive and helpful in the past.
0
Hello Tim,
This is a known problem and until we fix it I suggest that you use the following workaround:
Subscribe to the OnClientSelectedIndexChanged event and put this code in the handler:
Best wishes,
Veselin Vasilev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
This is a known problem and until we fix it I suggest that you use the following workaround:
Subscribe to the OnClientSelectedIndexChanged event and put this code in the handler:
function OnClientSelectedIndexChangedHandler(sender, e) |
{ |
var inputElement = sender.get_inputDomElement(); |
inputElement.className = inputElement.className.replace("rcbEmptyMessage", ""); |
} |
Best wishes,
Veselin Vasilev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Tim
Top achievements
Rank 1
answered on 21 Apr 2009, 11:07 AM
Hi Veselin,
Thanks for getting back to me.
This has fixed part of the problem.
I found that sometimes the rcbEmptyMessage class is on the element multiple times but I can work around this by using
However, this doesn't resolve the problem that the empty message is no longer displayed after calling requestItems().
Do you have any workaround for this?
Thanks,
Tim.
Thanks for getting back to me.
This has fixed part of the problem.
I found that sometimes the rcbEmptyMessage class is on the element multiple times but I can work around this by using
inputElement.className = inputElement.className.replace(/rcbEmptyMessage/g, "") |
However, this doesn't resolve the problem that the empty message is no longer displayed after calling requestItems().
Do you have any workaround for this?
Thanks,
Tim.
0
0
Tim
Top achievements
Rank 1
answered on 28 Apr 2009, 01:57 PM
Page:
Web service:
Type a number in the text box and click the button to cause the combo box to be repopulated using the web method. The emptymessage instantly disappears from the combo box and won't reappear, even if you select an item in the combo box and then remove it again. Hope this helps resolve it...
<head runat="server"> |
<telerik:RadCodeBlock runat="server"> |
<script type="text/javascript"> |
function refreshNumbersCombo() { |
$find("<%=cboNumbers.ClientID %>").requestItems("", false); |
} |
function cboNumbers_ItemsRequesting(sender, eventArgs) { |
sender.clearSelection(); |
var context = eventArgs.get_context(); |
context["Count"] = parseInt($get("txtCount").value); |
} |
function cboNumbers_SelectedIndexChanged(sender, eventArgs) { |
var inputElement = sender.get_inputDomElement(); |
inputElementinputElement.className = inputElement.className.replace(/rcbEmptyMessage/g, ""); |
} |
</script> |
</telerik:RadCodeBlock> |
</head> |
<body> |
<form id="form1" runat="server"> |
<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager> |
<div> |
<input id="txtCount" type="text" value="1" style="width: 2em;" /> |
<input id="btnSetCount" type="button" value="Set Count" onclick="refreshNumbersCombo();" /> |
</div> |
<telerik:RadComboBox ID="cboNumbers" runat="server" MarkFirstMatch="true" EmptyMessage="- Pick a number -" OnClientItemsRequesting="cboNumbers_ItemsRequesting" OnClientSelectedIndexChanged="cboNumbers_SelectedIndexChanged"> |
<WebServiceSettings Path="ComboData.asmx" Method="GetNumbers" /> |
</telerik:RadComboBox> |
</form> |
</body> |
Web service:
[ScriptService] |
public class ComboData : System.Web.Services.WebService |
{ |
[WebMethod] |
public RadComboBoxItemData[] GetNumbers(RadComboBoxContext context) |
{ |
int count = (int)context["Count"]; |
var items = Enumerable.Range(1, count).Select(i => new RadComboBoxItemData() |
{ |
Value = i.ToString(), |
Text = i.ToString() |
}); |
return items.ToArray(); |
} |
} |
Type a number in the text box and click the button to cause the combo box to be repopulated using the web method. The emptymessage instantly disappears from the combo box and won't reappear, even if you select an item in the combo box and then remove it again. Hope this helps resolve it...
0
Hi Tim,
Thank you for providing the code.
Actually, both issues were caused by the same bug, which we fixed. I updated your Telerik points for the report.
Please download the latest internal build that will be available on the 4th of May to obtain the fix.
Best wishes,
Simon
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Thank you for providing the code.
Actually, both issues were caused by the same bug, which we fixed. I updated your Telerik points for the report.
Please download the latest internal build that will be available on the 4th of May to obtain the fix.
Best wishes,
Simon
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Tim
Top achievements
Rank 1
answered on 06 May 2009, 09:01 AM
Thanks for fixing this. Can you please confirm which build number this is fixed in? I went to download the internal build today, but neither builds 429 or 430 mention any fixes to the RadComboBox in the change log.
0
Accepted
Hi Tim,
Please download Telerik.Web.UI 2009.1.506 from your Client.net account. It includes the fix.
All the best,
Simon
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Please download Telerik.Web.UI 2009.1.506 from your Client.net account. It includes the fix.
All the best,
Simon
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Tim
Top achievements
Rank 1
answered on 11 May 2009, 11:04 AM
Thanks Simon... I've downloaded this and now all is working fine.
0
Eliza Sahoo
Top achievements
Rank 1
answered on 22 Apr 2010, 01:59 PM
The following code snippet demonstrates how you can add an event handler as well as a CSS class to an element using ScriptManager. |
Sys.UI.DomEvent class provides API for attaching handlers to DOM element. Sys.UI.DomElement class provides API and Properties for manupulating DOM elements. |