Load on demand does not populate drop down list with list items when using IE8. It works properly in FF and it has worked in previous versions of IE. I’ve downloaded the latest builds with the same results.
Is there a fix for this?
<!---- RAD CARRIER COMBOBOX -----><telerik:RadComboBox ID="radCarrierID" runat="server" EmptyMessage='<%# GetResourceValue("Txt:PleaseSelect", "VFB")%>' ShowToggleImage="True" ShowMoreResultsBox="true" EnableLoadOnDemand="True" OnItemDataBound="radCarrier_ItemDataBound" DropDownWidth="423px" Width="260px" OnClientFocus="ClearCarrierOnFocus" OnClientBlur="OnCarrierBlur" OnClientSelectedIndexChanged="HandleEndChangingCarrier" Skin="Outlook" OnItemsRequested="radCarrierID_ItemsRequested" EnableVirtualScrolling="true"> <HeaderTemplate> <table style="text-align: left"> <tr> <td style="width: 225px;"> Carrier </td> <td style="width: 125px;"> City </td> <td style="width: 25px;"> St </td> </tr> </table> </HeaderTemplate> <ItemTemplate> <table style="text-align: left"> <tr> <td style="width: 225px;"> <%# DataBinder.Eval(Container.DataItem, "Name") %> </td> <td style="width: 125px;"> <%# DataBinder.Eval(Container.DataItem, "City") %> </td> <td style="width: 25px;"> <%# DataBinder.Eval(Container.DataItem, "St") %> </td> </tr> </table> </ItemTemplate> </telerik:RadComboBox>
protected void radCarrierID_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
try
{
// create in memory datatable
DataTable tblName = new DataTable();
tblName.Columns.Add("NameID");
tblName.Columns.Add("Name");
tblName.Columns.Add("City");
tblName.Columns.Add("St");
e.Message = "No Matches";
if (e.Text != "")
{
WhereClause wc = new WhereClause();
OrderBy orderBy = new OrderBy(false, true);
orderBy.Add(CarrierTable.Carrier_Lookup_Name, OrderByItem.OrderDir.Asc);
string strFilter = "Carrier_Lookup_Name like '" + e.Text.Replace("'", "''") + "%'";
SqlFilter objFilter = new SqlFilter(strFilter);
wc.AddFilter(objFilter, CompoundFilter.CompoundingOperators.And_Operator);
int intTotalCount = CarrierTable.GetRecordCount(wc);
int itemOffset = e.NumberOfItems;
int intPage = itemOffset / ItemsPerRequest;
int endOffset = Math.Min(itemOffset + ItemsPerRequest, intTotalCount);
e.EndOfItems = endOffset == intTotalCount;
if (itemOffset <= intTotalCount)
{
foreach (CarrierRecord itemValue in CarrierTable.GetRecords(wc, orderBy, intPage, ItemsPerRequest))
{
tblName.Rows.Add(new string[] { itemValue.Carrier_ID.ToString(), itemValue.Carrier_Lookup_Name.ToString(), itemValue.Carrier_CitySpecified ? itemValue.Carrier_City.ToString() : "", itemValue.Carrier_StateSpecified ? CarrierTable.Carrier_State.Format(itemValue.Carrier_State.ToString()) : "" });
}
}
e.Message = String.Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>", endOffset, intTotalCount);
}
// radShipperID.DataTextField = "Name;City;St";
radCarrierID.DataValueField = "NameID";
radCarrierID.DataSource = tblName;
radCarrierID.DataBind();
}
catch (Exception ex)
{ e.Message = "Error: " + ex.Message; }
}
Phil
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ContentMenu.ascx.cs" Inherits="CMSControls_ContentMenu" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadContextMenuMenu"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadContextMenuMenu" /> <telerik:AjaxUpdatedControl ControlID="RadWindowMaster" /> <telerik:AjaxUpdatedControl ControlID="LabelDebug" /> <telerik:AjaxUpdatedControl ControlID="divMenu" LoadingPanelID="radAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManagerProxy><asp:PlaceHolder ID="PlaceHolderAdmin" runat="server" /><div id="divMenu"> <asp:Literal ID="LiteralEmptyMenu" runat="server" /> <asp:PlaceHolder ID="PlaceHolderRadMenuCMS" runat="server" /></div><asp:Label ID="LabelDebug" runat="server" Text="" /><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> <asp:Literal ID="LiteralOnClientClose" runat="server" /> </script></telerik:RadCodeBlock>protected void RadContextMenuMenu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e){ if (IsAdmin) { LabelDebug.Text += "RadContextMenuCMS_ItemClick " + e.Item.Text + "<br>"; MasterPage myMaster = Page.Master; RadContextMenu RadContextMenuMenu = (RadContextMenu)Shuware.ShuwareCommon.Web.FindControlByID(PlaceHolderAdmin.Controls, "RadContextMenuMenu"); RadWindow RadWindowMaster = (RadWindow)myMaster.FindControl("RadWindowMaster"); //Create a new RadWindow object and assign it the ID of the RadWindow hidden on the page switch (e.Item.Text) { case "Edit": RadWindowMaster.NavigateUrl = "~/contentmenueditor.aspx?id=" + Server.UrlEncode(MenuID.ToString()); RadWindowMaster.OnClientClose = "OnClientclose" + "_" + this.ID; RadWindowMaster.AutoSize = false; RadWindowMaster.Visible = true; RadWindowMaster.Height = Unit.Pixel(555); RadWindowMaster.Width = Unit.Pixel(485); RadContextMenuMenu.Items[1].Visible = true; RadContextMenuMenu.Items[2].Visible = true; break; case "Save": RadContextMenuMenu.Items[1].Visible = false; RadContextMenuMenu.Items[2].Visible = false; RadWindowMaster.Visible = false; Response.Redirect(Shuware.ShuwareCommon.Web.GetCurrentURL()); //redirect back to the same page break; case "Cancel": RadContextMenuMenu.Items[1].Visible = false; RadContextMenuMenu.Items[2].Visible = false; RadWindowMaster.Visible = false; break; case "Admin": RadContextMenuMenu.Items[1].Visible = false; RadContextMenuMenu.Items[2].Visible = false; RadWindowMaster.OnClientClose = "OnClientclose" + "_" + this.ID; RadWindowMaster.NavigateUrl = "~/admin.aspx"; RadWindowMaster.Visible = true; //show the admin window break; default: RadContextMenuMenu.Items[1].Visible = false; RadContextMenuMenu.Items[2].Visible = false; RadWindowMaster.Visible = false; break; } }}
This sets the onclientclose function for the radwindow.
string strScript = "function OnClientclose" + "_" + this.ID + "(sender, eventArgs)\n{\n var arg = eventArgs.get_argument();\nif(arg) {\n__doPostBack('ctl00$" + RadContextMenuMenu.ClientID.Replace("_", "$") + "', arg);\n}\n}";
LiteralOnClientClose.Text += strScript;/*This becomes the below code at runtime:function OnClientclose_ContentMenu1(sender, eventArgs){ var arg = eventArgs.get_argument(); if(arg) { __doPostBack('ctl00$ctl00$ContentPlaceHolder1$ContentMenu1$RadContextMenuMenu', arg); }}*/ var multipage = $find('multipage');var page = new Telerik.Web.UI.RadPageView();var tab = new Telerik.Web.UI.RadTab();tab.set_text("New Tab"); multipage.get_pageViews().add(page);$find('tabstrip').get_tabs().add(tab);I have a problem with the RadComboBox that I was hoping someone would have a fix for. The problem is that if an item’s text contains more than one space between the words, the spaces are removed. For example, if the text of an item is “Select Frequency”, then it shows up as “Select Frequency”. For our application we need to preserve the amount of white space in the text.
I have read on another post where it says to use   instead of a space, but the values in the list are all from user entered values in the database. I have been able to replace the spaces in the ItemDataBound event of the RadComboBox like this:
protected void RadComboBox1_ItemDataBound(object sender, RadComboBoxItemEventArgs e)
{
e.Item.Text = Page.Server.HtmlDecode(((DataRowView)e.Item.DataItem)[ColumnName].ToString().Replace(" "," "));
}
But this seems a little overly complicated to fix a problem like this. Any Suggestions.
function openConfirmBox() { radconfirm('Did you save an Excel Spreadsheet?', confirmCallBackFn, 330, 100, null,'Confirm'); } function confirmCallBackFn(arg) { alert(arg); if (arg == true); { document.getElementById('<%= UpdateFailed.ClientID %>').click(); } GetRadWindow().Close(); }
<telerik:RadComboBox ID="cmbReminder_1" MarkFirstMatch="True" runat="server" Height="190px"
Width="100px" Skin="Default" AutoPostBack="False" HighlightTemplatedItems="True"
ShowToggleImage="True" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged1">
<ItemTemplate>
<table style="border-bottom: 1px dotted #EFEFEF; margin-bottom: 10px; font-size: 11px;"
width="60px">
<tr>
<td>
<img src='/Images/<%# DataBinder.Eval(Container, "Attributes['ImagePath']") %>' alt="" />
</td>
<td>
<%# DataBinder.Eval(Container, "Attributes['DisplayName']") %>
</td>
</tr>
</table>
</ItemTemplate>
<Items>
<telerik:RadComboBoxItem ImagePath="EmailIcon_32x32p.png" DisplayName="Email" Text="Email" Value="1">
</telerik:RadComboBoxItem>
<telerik:RadComboBoxItem ImagePath="TextIcon_32x32p.png" DisplayName="SMS" Text="SMS" Value="2">
</telerik:RadComboBoxItem>
<telerik:RadComboBoxItem ImagePath="PhoneIcon_32x32p.png" DisplayName="Phone" Value="3"
Text="Phone"></telerik:RadComboBoxItem>
</Items>
</telerik:RadComboBox>
Code behind:
RadRotatorItem step3Item = (RadRotatorItem)this.RadRotatorHorizontal.Controls[2];
RadComboBox cmbTiming_2 = (RadComboBox)step3Item.FindControl("cmbTiming_2");
I am getting the correct control because when I step through the code, I examine the cmbTiming_2 and it contains the correct items.
Any help is appreciated
<script type="text/javascript"> function getValue() { var combo = <%=RadComboBox1.ClientID %>; alert('1'); var sel = combo.get_selectedItem(); } </script> <telerik:RadComboBox ID="RadComboBox1" runat="server"> <Items> <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem1" Value="RadComboBoxItem1" /> <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem2" Value="RadComboBoxItem2" /> <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem3" Value="RadComboBoxItem3" /> </Items> </telerik:RadComboBox> <input id="Button1" type="button" value="button" onclick="getValue()" />