Hi Guys,
I am using type ahead functionality in combo box, for auto completing state. There are instances when user may enter such value which is not suggested or not in a list e.g. ZC or nv. How can we make sure that the user has selected value within the given list.
I understand that I can use drop down list in above scenario. But I need to use the auto complete for combo box.
I tried the property setting suggested http://www.telerik.com/help/aspnet-ajax/combobox-select-existing-item.html, but it does not work as expected.
I also tried the javascript. it does turn red when a wrong value is enterd, but does not stop the user from saving the value, and the red background colour does not go away once the correct value is selected.
function OnClientBlurHandler(sender, eventArgs) {
var textInTheCombo = sender.get_text();
var item = sender.findItemByText(textInTheCombo);
//if there is no item with that text
if (!item) {
sender.set_text("");
setTimeout(function () {
var inputElement = sender.get_inputDomElement();
inputElement.focus();
inputElement.style.backgroundColor = "red";
}, 20);
}
}
Thanks In Advance,
<
Telerik:RadListListBox
id
=
"lstAvailable"
runat
=
"server"
allowtransfer
=
"true"
transfertoid
=
"lstAllocated"
width
=
"350px"
height
=
"240px"
autopostbackontransfer
=
"true"
selectionmode
=
"Multiple"
>
<
HeaderTemplate
>
<
div
style
=
"text-align: center; background-color: #EEE;"
>
<
asp:Label
ID
=
"lblAvailable"
runat
=
"server"
Text
=
"Available fields"
></
asp:Label
>
</
div
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
div
style
=
"width:auto"
>
<%#Eval("Text") %>
</
div
>
</
ItemTemplate
>
<
Telerik:RadListListBox
>
<
Telerik:RadListListBox
id
=
"lstAllocated"
runat
=
"server"
selectionmode
=
"Multiple"
allowdelete
=
"False"
width
=
"350px"
height
=
"240px"
AllowReorder
=
"True"
>
<
HeaderTemplate
>
<
div
style
=
"text-align: center; background-color: #EEE;"
>
<
asp:Label
ID
=
"lblAllocated"
runat
=
"server"
Text
=
"Used fields"
></
asp:Label
>
</
div
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
div
style
=
"width:auto"
>
<
div
style
=
"float:left"
><%#Eval("Text") %></
div
>
<
div
style
=
"float:Right"
>
<
asp:CheckBox
runat
=
"server"
ID
=
"chkRequired"
/>
</
div
>
</
div
>
</
ItemTemplate
>
</
Telerik:RadListListBox
>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadFirstListBox();
LoadSecondListBox();
}
}
protected void LoadFirstListBox()
{
// Same as LoadSecondListBox (see below)
}
protected void LoadSecondListBox()
{
ListItemCollection lstAllocatedCollection = new ListItemCollection();
ListItem allocatedItem = new ListItem(
"Test-1",
"22");
allocatedItem.Attributes["Required"] = "true";
lstAllocatedCollection.Add(allocatedItem);
allocatedItem = new ListItem(
"Test-2",
"33");
allocatedItem.Attributes["Required"] = "false";
lstAllocatedCollection.Add(allocatedItem);
lstAllocated.DataSource = lstAllocatedCollection;
lstAllocated.DataTextField = "Text";
lstAllocated.DataValueField = "Value";
lstAllocated.DataBind();
}
void AllocatedListDataBound(object sender, Telerik.Web.UI.RadListBoxItemEventArgs e)
{
string checkedValue = (string) DataBinder.Eval(e.Item.DataItem, "Attributes['Required']");
CheckBox checkBox = (CheckBox)e.Item.FindControl("chkRequired");
checkBox.Checked = Convert.ToBoolean(checkedValue);
}
void lstAvailable_Transferred(object sender, Telerik.Web.UI.RadListBoxTransferredEventArgs e)
{
foreach(Telerik.Web.UI.RadListBoxItem item in e.Items)
{
item.DataBind(); // Pretty much unnecessary because I am not really changing anything here
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head runat="server"> |
<title>Untitled Page</title> |
</head> |
<body> |
<form id="form1" runat="server"> |
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" OutputCompression="AutoDetect"> |
</telerik:RadScriptManager> |
<telerik:RadSplitter ID="RadSplitter1" runat="server" FullScreenMode="True" Orientation="Horizontal"> |
<telerik:RadPane ID="RadPane1" runat="server" Height="60px"> |
<telerik:RadMenu ID="RadMenu1" runat="server"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
<Items> |
<telerik:RadMenuItem runat="server" Text="Click Me"> |
<Items> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 1"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 2"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 3"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 4"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 5"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 6"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 7"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 8"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 9"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 10"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 11"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 12"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 13"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 14"> |
</telerik:RadMenuItem> |
<telerik:RadMenuItem runat="server" Text="Child RadMenuItem 15"> |
</telerik:RadMenuItem> |
</Items> |
</telerik:RadMenuItem> |
</Items> |
</telerik:RadMenu> |
</telerik:RadPane> |
<telerik:RadSplitBar ID="RadSplitBar1" runat="server" /> |
<telerik:RadPane ID="RadPane2" runat="server"> |
</telerik:RadPane> |
</telerik:RadSplitter> |
</form> |
</body> |
</html> |
<
telerik:RadWindow
ID
=
"RadWindow1"
runat
=
"server"
VisibleOnPageLoad
=
"false"
Skin
=
"Black"
>
<
ContentTemplate
>
<
div
>
<
h1
>TEST</
h1
>
</
div
>
</
ContentTemplate
>
</
telerik:RadWindow
>
function
AddNewDocument(sender, args)
{
var
RadWindow = $find(
"<%=RadWindow1.ClientID%>"
);
RadWindow.set_modal(
true
);
RadWindow.show();
}