A `<tc:suggest/>` tag can be added to an inputfield to make suggestions based on the already entered text.

Tag Library Documentation: | |

After you type a character in the textfield, a list of suggestions is shown.

If `update="true"` the attribute `totalCount` should be set to improve performance. It set the amount of items loaded from the server.

The suggestion list is calculated in the controller. User the `query` attribute to pass the query string to the controller.

    <tc:in id="inBasic">
      <tc:suggest totalCount="10" query="\#{suggestController.query}">
        <tc:selectItems value="\#{suggestController.solarObjects}" var="name" itemValue="\#{name}"/>
      </tc:suggest>
    </tc:in>

This example differs in a few points from the one in the 'Basics' section. There are only two suggestions shown to the user, because the `maximumItems` attribute is set to '2'. Also you need to type two characters before suggestions are made, because of the `minimumCharacters` attribute which has the value '2'. And by setting the `delay` to '2000', the user have to wait two seconds, before the suggestion list is shown.

    <tc:suggest query="\#{suggestController.query}"
                maximumItems="2" minimumCharacters="2" delay="2000">
      <tc:selectItems value="\#{suggestController.solarObjects}" var="name" itemValue="\#{name}"/>
    </tc:suggest>

Filtering can also be done by the client. For that, set `update="false"`.

If client side, you can also use `<tc:selectItem/>` instead of `<tc:selectItems/>`.

    <tc:suggest update="false"/>

By default, the suggest menu is rendered in the `.tobago-page-menuStore` and positioned relative to the page. The suggest menu will be scrolled with the page.

Sometimes this behavior causes problems. For example if tc:suggest is used in a fixed header. In this case the suggest menu must not scroll with the page. Instead it should stick on the input component.

To render a suggest menu local on the component, markup `localMenu` can be used.