Style and Appearance in Blazor AutoComplete Component

29 May 202424 minutes to read

The following content provides the exact CSS structure that can be used to modify the control’s appearance based on the user preference.

Read-only mode

Specify the boolean value to the Readonly whether the AutoComplete allows the user to change the value or not.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" Readonly=true @bind-Value="GameValue" DataSource="@LocalData">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
    
        public string GameValue { get; set; } = "Basketball";
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }

    Blazor AutoComplete with Readonly mode

    Disabled state

    Specify the boolean value to the Enabled property that indicates whether the component is enabled or not.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" Enabled=false DataSource="@LocalData">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }

    Blazor AutoComplete with Disabled

    Customizing the disabled component’s text color

    You can customize the text color of a disabled component by targeting its CSS class .e-input[disabled], which indicates the input element in a disabled state, and set the desired color to the -webkit-text-fill-color property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px" Enabled="false">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-input-group.e-control-wrapper .e-input[disabled] {
        -webkit-text-fill-color: #0d9133;
    }
    </style>

    Blazor AutoComplete with Disabled component text color

    Show the custom icon in dropdown icon

    You can customize the dropdown icon by targeting its CSS class .e-ddl-icon::before, which indicates the icon element displayed within the autocomplete component, and set the desired icon to the content property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" ShowPopupButton=true DataSource="@LocalData">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    }
    
    <style>
        .e-ddl.e-input-group.e-control-wrapper .e-ddl-icon::before {
            content: '\e304';
        }
    </style>

    Blazor AutoComplete with dropdown icon

    You can customize the dropdown icon for the particular component using the CssClass property and add style to the custom class which is mapped to CssClass.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" CssClass="e-custom" ShowPopupButton=true DataSource="@LocalData">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    }
    
    <style>
        .e-custom.e-ddl.e-input-group.e-control-wrapper .e-ddl-icon::before {
            content: '\e304';
        }
    </style>

    Blazor AutoComplete with dropdown icon using CssClass

    Customizing the appearance of container element

    You can customize the appearance of the container element within the autocomplete component by targeting its CSS class .e-input, which indicates the parent element of the input, and allows you to apply any desired styles to the component.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
        .e-ddl.e-input-group.e-control-wrapper .e-input {
        font-size: 20px;
        font-family: emoji;
        color: #ab3243;
        background: #32a5ab;
    }
    </style>

    Blazor AutoComplete container element customization

    Customizing the dropdown icon’s color

    You can customize the dropdown icon by targeting its CSS class .e-ddl-icon.e-icons, which indicates the icon element displayed within the autocomplete component, and setting the desired color to the color property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px" ShowPopupButton="true">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-ddl .e-input-group-icon.e-ddl-icon.e-icons, .e-ddl .e-input-group-icon.e-ddl-icon.e-icons:hover {
        color: #bb233d;
        font-size: 13px;
    }
    </style>

    Blazor AutoComplete icon color

    Customizing the focus color

    You can customize the component color when it is focused by targeting its CSS class .e-input-focus::after, which indicates the input element when it is focused, and set the desired color to the background property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-ddl.e-input-group.e-control-wrapper.e-input-focus::before, .e-ddl.e-input-group.e-control-wrapper.e-input-focus::after {
        background: #c000ff;
    }
    </style>

    Blazor AutoComplete focus color

    Customizing the outline theme’s focus color

    You can customize the color of the autocomplete component when it is in a focused state and rendered with an outline theme, by targeting its CSS class e-outline which indicates the input element when it is focused, and allows you to set the desired color to the color property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px" CssClass="e-outline">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-outline.e-input-group.e-input-focus:hover:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled):not(.e-float-icon-left),.e-outline.e-input-group.e-input-focus.e-control-wrapper:hover:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled):not(.e-float-icon-left),.e-outline.e-input-group.e-input-focus:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled),.e-outline.e-input-group.e-control-wrapper.e-input-focus:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled) {
        border-color: #b1bd15;
        box-shadow: inset 1px 1px #b1bd15, inset -1px 0 #b1bd15, inset 0 -1px #b1bd15;
    }
    </style>

    Blazor AutoComplete focusing color outline theme

    Customizing the background color of focus, hover, and active items

    You can customize the background color and text color of list items within the autocomplete component when they are in a focused, active, or hovered state by targeting the CSS classes .e-list-item.e-item-focus, .e-list-item.e-active, and .e-list-item.e-hover, and set the desired color to the background-color and color properties.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    @using Syncfusion.Blazor.Inputs;
    
    <SfAutoComplete TValue="string" TItem="Country"  Placeholder="Select a game" DataSource="@LocalData" Width="300px">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-dropdownbase .e-list-item.e-item-focus, .e-dropdownbase .e-list-item.e-active, .e-dropdownbase .e-list-item.e-active.e-hover, .e-dropdownbase .e-list-item.e-hover {
        background-color: #1f9c99;
        color: #2319b8;
    }
    </style>

    Blazor AutoComplete with customizing the focus, hover and active item color

    Customizing the appearance of popup element

    You can customize the appearance of the popup element within the autocomplete component by targeting the CSS class .e-list-item.e-item-focus, which indicates the list item element when it is focused, and and allows you to apply any desired styles to the component.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country"  Placeholder="Select a game" DataSource="@LocalData" Width="300px">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-dropdownbase .e-list-item, .e-dropdownbase .e-list-item.e-item-focus {
        background-color: #29c2b8;
        color: #207cd9;
        font-family: emoji;
        min-height: 29px;
    }
    </style>

    Blazor AutoComplete with customizing popup color

    Change the HTML attributes

    Add the additional html attributes such as styles, class, and more to the root element using the HTMLAttributes property and accepts n number of attributes in a key-value pair format.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    
    <SfAutoComplete TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" DataSource="@LocalData" HtmlAttributes="@htmlAttribute">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
        Dictionary<string, object> htmlAttribute = new Dictionary<string, object>()
        {
            {"class", "e-games" },
            {"name", "games" },
            {"style", "background-color: yellow; text-align: right" },
            {"title", "Syncfusion DropDownList" }
        };
    
    }

    Blazor AutoComplete with different font family

    Set the various font family for autocomplete elements

    The font-family of the autocomplete can be changed by overriding using the following selector. The overridden can be applied to specific component by adding a class name through the CssClass property.

    In the following sample, the font family of the AutoComplete, ListItem text in AutoComplete and filterInput text are changed.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete @ref="dropdown" TValue="string" TItem="Games" ShowPopupButton=true Placeholder="Select a game" Width="300px" DataSource="@LocalData" CssClass="e-custom" AllowFiltering=true FilterBarPlaceholder="Search here">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
        SfAutoComplete<string, Games> dropdown;
        public string GameValue { get; set; } = "Badminton";
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }
    
    <style>
        /*Text in DropDownList*/
        .e-custom.e-input-group input.e-dropdownlist {
            font-family: cursive;
        }
        /*Item Text in DropDownList*/
        .e-custom.e-popup-open {
            font-family: cursive;
        }
        /*Dropdownlist filterInput font-family*/
        .e-custom span.e-input-group.e-control-container.e-control-wrapper {
            font-family: cursive;
        }
    </style>

    Blazor AutoComplete with different font family

    Show tooltip on list item

    You can achieve this behavior by integrating the tooltip component. When the mouse hovers over the AutoComplete option, a tooltip appears with information about the hovered list item.

    The following code demonstrates how to display a tooltip when hovering over the AutoComplete option.

  • CSHTML
  • @using Syncfusion.Blazor.Popups;
    @using Syncfusion.Blazor.DropDowns;
    
    <SfTooltip @ref="TooltipObj" ID="Tooltip" Target=".e-list-item .name[title]">
    </SfTooltip>
    
    <SfAutoComplete TItem="GameFields" TValue="string" Placeholder="Select a game" DataSource="@Games">
        <AutoCompleteFieldSettings Text="Text" Value="ID"></AutoCompleteFieldSettings>
        <AutoCompleteTemplates TItem="GameFields">
            <ItemTemplate>
                <div class="name" title="@((context as GameFields).Text)"> @((context as GameFields).Text) </div>
            </ItemTemplate>
        </AutoCompleteTemplates>
        <AutoCompleteEvents TValue="string" TItem="GameFields" Opened="OnOpen" OnClose="OnClose"></AutoCompleteEvents>
    </SfAutoComplete>
    
    @code {
    
        SfTooltip TooltipObj;
        public Boolean isOpen { get; set; } = false;
    
        public class GameFields
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        private List<GameFields> Games = new List<GameFields>() {
            new GameFields(){ ID= "Game1", Text= "American Football" },
            new GameFields(){ ID= "Game2", Text= "Badminton" },
            new GameFields(){ ID= "Game3", Text= "Basketball" },
            new GameFields(){ ID= "Game4", Text= "Cricket" },
            new GameFields(){ ID= "Game5", Text= "Football" },
            new GameFields(){ ID= "Game6", Text= "Golf" },
            new GameFields(){ ID= "Game7", Text= "Hockey" },
            new GameFields(){ ID= "Game8", Text= "Rugby"},
            new GameFields(){ ID= "Game9", Text= "Snooker" },
            new GameFields(){ ID= "Game10", Text= "Tennis"},
        };
    
        public void OnOpen(PopupEventArgs args)
        {
            isOpen = true;
        }
    
        public void OnClose(PopupEventArgs args)
        {
            TooltipObj.CloseAsync();
        }
    
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (isOpen)
            {
                await TooltipObj.RefreshAsync();
            }
        }
    }

    Blazor AutoComplete with tooltip

    Customize selected item opacity

    In the following code , the CSS style that targets the .e-list-item class within the .e-dropdownbase class when it is in an active or active and hovered state. It sets the opacity property , which will make the elements appear transparent. This can be used to change the appearance of the autocomplete list items when they are in a certain state.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete @ref="autocomplete" TValue="string" TItem="Games" Placeholder="Select a game" Width="300px" DataSource="@LocalData" CssClass="e-custom" AllowFiltering=true FilterBarPlaceholder="Search here">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    
    @code {
        SfAutoComplete<string, Games> autocomplete;
        public string GameValue { get; set; } = "Game5";
    
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }
    
    <style>
    
        .e-dropdownbase .e-list-item.e-active,
        .e-dropdownbase .e-list-item.e-active.e-hover {
            opacity: 0.1;
        }
    
    </style>

    Blazor AutoComplete with opacity style

    Customizing the height

    Height of AutoComplete

    Use the PopupHeight property to change the height of the popup.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" ShowPopupButton=true Placeholder="Select a game" Width="300px" DataSource="@LocalData" PopupHeight="500px" CssClass="e-custom">
        <AutoCompleteFieldSettings Value="Text" Text="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    @code {
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }
    
    <style>
        .e-custom.e-input-group, .e-custom.e-input-group.e-control-wrapper {
            height: 50px;
        }
    
    </style>

    Blazor AutoComplete with Popup height

    Width of AutoComplete

    To customize the width of the popup alone, use the PopupWidth property. By default, the popup width is set based on the component’s width. Use the Width to change the width of the component.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Games" ShowPopupButton=true Placeholder="Select a game" DataSource="@LocalData" Width="500px" PopupWidth="300px">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    @code {
        public class Games
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
    
        List<Games> LocalData = new List<Games> {
        new Games() { ID= "Game1", Text= "American Football" },
        new Games() { ID= "Game2", Text= "Badminton" },
        new Games() { ID= "Game3", Text= "Basketball" },
        new Games() { ID= "Game4", Text= "Cricket" },
        new Games() { ID= "Game5", Text= "Football" },
        new Games() { ID= "Game6", Text= "Golf" },
        new Games() { ID= "Game7", Text= "Hockey" },
        new Games() { ID= "Game8", Text= "Rugby"},
        new Games() { ID= "Game9", Text= "Snooker" },
        new Games() { ID= "Game10", Text= "Tennis"},
        };
    
    }

    Blazor AutoComplete with Popup Width

    Disable specific items in AutoComplete

    Prevent some items in the popup list from selecting. This can be achieved by disabling the item for a specific dropdown list component by adding the custom class for the popup element using the CssClass property.

    In the following code, a single list Item is hidden using js interop.

    @inject IJSRuntime JSRuntime;
    @using Syncfusion.Blazor.DropDowns
    
    <SfAutoComplete ID="autocomplete" TValue="string" TItem="Countries" Width="300px" Placeholder="e.g. Australia" DataSource="@Country" CssClass="e-custom-class">
        <AutoCompleteFieldSettings Value="Name"></AutoCompleteFieldSettings>
        <AutoCompleteEvents TItem="Countries" TValue="string" Opened="OnOpen"></AutoCompleteEvents>
    </SfAutoComplete>
    
    @code {
    
        public async Task OnOpen()
        {
            await this.JSRuntime.InvokeVoidAsync("disable", "autocomplete");
        }
        public class Countries
        {
            public string Name { get; set; }
    
            public string Code { get; set; }
        }
    
        List<Countries> Country = new List<Countries>
        {
            new Countries() { Name = "Australia", Code = "AU" },
            new Countries() { Name = "Bermuda", Code = "BM" },
            new Countries() { Name = "Canada", Code = "CA" },
            new Countries() { Name = "Cameroon", Code = "CM" },
            new Countries() { Name = "Denmark", Code = "DK" },
            new Countries() { Name = "France", Code = "FR" },
            new Countries() { Name = "Finland", Code = "FI" },
            new Countries() { Name = "Germany", Code = "DE" },
            new Countries() { Name = "Greenland", Code = "GL" },
            new Countries() { Name = "Hong Kong", Code = "HK" },
            new Countries() { Name = "India", Code = "IN" },
            new Countries() { Name = "Italy", Code = "IT" },
            new Countries() { Name = "Japan", Code = "JP" },
            new Countries() { Name = "Mexico", Code = "MX" },
            new Countries() { Name = "Norway", Code = "NO" },
            new Countries() { Name = "Poland", Code = "PL" },
            new Countries() { Name = "Switzerland", Code = "CH" },
            new Countries() { Name = "United Kingdom", Code = "GB" },
            new Countries() { Name = "United States", Code = "US" },
        };
    }
    <script>
        window.disable = function (id) { 
        setTimeout(function (e) { 
            var liCollections = document.querySelectorAll('.e-popup.e-custom-class .e-list-item') 
            if (liCollections && liCollections.length > 0) 
            liCollections[1].classList.add('e-disabled'); 
            liCollections[1].classList.add('e-overlay'); 
        }, 30); 
     } 
    </script>

    Blazor AutoComplete with Popup Width

    Adding search icon in the Blazor AutoComplete component.

    You can add the search icon to the AutoComplete component by overriding the content of the existing icon. The following code demonstrates how to add a search icon to the AutoComplete component.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns
    
    <SfAutoComplete TValue="string" TItem="GameFields" Width="300px" ShowPopupButton="true" Placeholder="e.g. Basketball" DataSource="@Games">
        <AutoCompleteFieldSettings Value="Text"></AutoCompleteFieldSettings>
    </SfAutoComplete>
    
    <style>
        .e-ddl.e-input-group.e-control-wrapper .e-ddl-icon::before {
            content: '\e724';
            font-family: 'e-icons';
            font-size: 16px;
            opacity: 0.4;
        }
    </style>
    
    @code{
        public class GameFields
        {
            public string ID { get; set; }
            public string Text { get; set; }
        }
        public List<GameFields> Games = new List<GameFields>()
        {
            new GameFields(){ ID= "Game1", Text= "American Football" },
            new GameFields(){ ID= "Game2", Text= "Badminton" },
            new GameFields(){ ID= "Game3", Text= "Basketball" },
            new GameFields(){ ID= "Game4", Text= "Cricket" },
            new GameFields(){ ID= "Game5", Text= "Football" },
        };
    }

    Blazor AutoComplete Search Icon

    Customizing the float label element’s focusing color

    You can change the text color of the floating label when it is focused by targeting its CSS classes .e-input-focus and .e-float-text.e-label-top. These classes indicate the floating label text while it is focused and set the desired color using the color property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    @using Syncfusion.Blazor.Inputs;
    
    <SfAutoComplete TValue="string" TItem="Country" Placeholder="e.g. Australia" DataSource="@LocalData" Width="300px" FloatLabelType="FloatLabelType.Auto">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-float-input.e-input-group:not(.e-float-icon-left) .e-float-line::before,.e-float-input.e-control-wrapper.e-input-group:not(.e-float-icon-left) .e-float-line::before,.e-float-input.e-input-group:not(.e-float-icon-left) .e-float-line::after,.e-float-input.e-control-wrapper.e-input-group:not(.e-float-icon-left) .e-float-line::after {
        background-color: #2319b8;
    }
    
    .e-ddl.e-lib.e-input-group.e-control-wrapper.e-control-container.e-float-input.e-input-focus .e-float-text.e-label-top {
        color: #2319b8;
    }
    </style>

    Blazor AutoComplete with float label focusing color

    Customizing the color of the placeholder text

    You can change the color of the placeholder by targeting its CSS class input.e-input::placeholder, which indicates the placeholder text, and set the desired color using the color property.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns
    
    <SfAutoComplete TValue="string" TItem="Country"  Placeholder="Select a game" DataSource="@LocalData" Width="300px" >
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-ddl.e-input-group input.e-input::placeholder {
        color: red;
    }
    </style>

    Blazor AutoComplete with color placeholder

    Customizing the placeholder to add mandatory indicator(*)

    The mandatory indicator * can be applied to the placeholder by targeting its CSS class .e-float-text::after using the content style.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    @using Syncfusion.Blazor.Inputs;
    
    <SfAutoComplete TValue="string" TItem="Country"  Placeholder="Select a game" DataSource="@LocalData" Width="300px" FloatLabelType="FloatLabelType.Auto">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-input-group.e-control-wrapper.e-control-container.e-float-input .e-float-text::after {
        content: "*";
        color: red;
    }
    </style>

    Blazor AutoComplete with mandatory indicator placeholder

    Customizing the text selection color

    The appearance of a selected item within a AutoComplete component can be customized by targeting the CSS class input.e-input::selection and set the desired background color and text color. This customization will only be applied when the item is selected manually. To achieve this, use the background-color and color properties of the CSS class input.e-input::selection.

  • CSHTML
  • @using Syncfusion.Blazor.DropDowns;
    
    <SfAutoComplete TValue="string" TItem="Country"  Placeholder="Select a game" DataSource="@LocalData" Width="300px">
        <AutoCompleteFieldSettings Value="Name" />
    </SfAutoComplete>
    
    @code {
    
        public class Country
        {
            public string Name { get; set; }
            public string Code { get; set; }
        }
    
        List<Country> LocalData = new List<Country> {
            new Country() { Name = "Australia", Code = "AU" },
            new Country() { Name = "Bermuda", Code = "BM" },
            new Country() { Name = "Canada", Code = "CA" },
            new Country() { Name = "Cameroon", Code = "CM" },
            new Country() { Name = "Denmark", Code = "DK" }
        };
    }
    
    <style>
    .e-ddl.e-input-group input.e-input::selection {
        color: red;
        background: yellow;
    }
    </style>

    Blazor ComboBox with customizing the focus, hover and active item color