Edit this page

Server Templates

You can define the ItemTemplate programmatically by assigning a new ITemplate instanceto the ItemTemplate property of the searchBox, as shown in the code below:

<telerik:RadSearchBox RenderMode="Lightweight" ID="RadSearchBox1" runat="server" DataSourceID="SqlDataSource1"
    DataKeyNames="ProductId, ProductName"
    DataValueField="ProductId" EmptyMessage="empty message" MaxResultCount="10"> 
    <DropDownSettings Height="240" Width="300" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
    SelectCommand="SELECT * FROM [Products]"></asp:SqlDataSource>

protected override void OnInit(EventArgs e)
    RadSearchBox1.DropDownSettings.ItemTemplate = new SearchBoxDropDownItemTemplate();

class SearchBoxDropDownItemTemplate : ITemplate
    public void InstantiateIn(Control container)
        Label id = new Label();
        id.ID = "idLabel";
        id.CssClass = "idClass";
        id.DataBinding += new EventHandler(id_DataBinding);

    private void id_DataBinding(object sender, EventArgs e)
        Label target = (Label)sender;
        Telerik.Web.UI.SearchBox.DropDownItem item = (Telerik.Web.UI.SearchBox.DropDownItem)target.BindingContainer;
        string id = Convert.ToString((int)DataBinder.Eval(item.DataItem, "ProductId"));
        target.Text = id;


Partial Public Class Templates
    Inherits System.Web.UI.Page
    Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
        RadSearchBox1.DropDownSettings = New SearchBoxDropDownItemTemplate()
    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        If Not Page.IsPostBack Then
            RadListBox2.DataSourceID = "SqlDataSource1"
            RadListBox2.DataTextField = "Name"
            RadListBox2.DataValueField = "ID"
        End If
    End Sub
    Class SearchBoxDropDownItemTemplate
        Implements ITemplate
        Public Sub InstantiateIn(container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn

            Dim id As New Label()
            id.ID = "idLabel"
            id.CssClass = "idClass"
            AddHandler id.DataBinding, AddressOf id_DataBinding

        End Sub
        Private Sub id_DataBinding(ByVal sender As Object, ByVal e As EventArgs)
            Dim target As Label = DirectCast(sender, Label)
            Dim item As Telerik.Web.UI.SearchBox.DropDownItem = DirectCast(target.BindingContainer, Telerik.Web.UI.SearchBox.DropDownItem)
            Dim id As String = Convert.ToString(DirectCast(DataBinder.Eval(item.DataItem, "ProductId"), Integer))
            target.Text = id
        End Sub

    End Class
End Class
Is this article helpful? No Yes
Thank you for your feedback!

Give article feedback

Tell us how we can improve this article