public void Render_Begin_SetsDivWithAttributes()
        {
            actual = string.Empty;
            string expected            = "<input id=\"autocomplete\" data-control-type=\"autocomplete\" />";
            AutoCompleteBuilder target = new AutoCompleteBuilder("autocomplete");

            actual = Utility.ControlHtmlBuilder <AutoComplete, AutoCompleteBuilder>(target);
            Assert.AreEqual(expected, actual);
        }
        public void Constructor_SetsTagName()
        {
            actual = string.Empty;
            AutoCompleteBuilder target = new AutoCompleteBuilder("autocomplete");

            returnHtml = Utility.ControlHtmlBuilder <AutoComplete, AutoCompleteBuilder>(target);
            actual     = Utility.GetTagName(returnHtml);
            Assert.AreEqual(_startTag, actual);
        }
        public void Constructor_SetsControls()
        {
            actual     = string.Empty;
            returnHtml = string.Empty;
            AutoCompleteBuilder target = new AutoCompleteBuilder("autocomplete");

            returnHtml = Utility.ControlHtmlBuilder <AutoComplete, AutoCompleteBuilder>(target);
            actual     = Utility.GetAttribute(returnHtml, "data-control-bind-source", _startTag);
            Assert.AreEqual(string.Empty, actual);
        }
        public void Render_Begin_SetsOptions()
        {
            actual = string.Empty;
            string expected            = "<input id=\"autocomplete\" data-control-type=\"autocomplete\" data-control-options=\"{&quot;disabled&quot;:true}\" />";
            AutoCompleteBuilder target = new AutoCompleteBuilder("autocomplete");

            target.Options(option => option.Disabled = true);
            actual = Utility.ControlHtmlBuilder <AutoComplete, AutoCompleteBuilder>(target);
            Assert.AreEqual(expected, actual);
        }
        public void Render_Begin_SetsBind()
        {
            actual = string.Empty;
            string expected            = "<input id=\"autocomplete\" data-control-type=\"autocomplete\" data-control-bind-source=\"{&quot;source&quot;:[&quot;India&quot;,&quot;US&quot;]}\" value=\"--country--\" type=\"text\" />";
            AutoCompleteBuilder target = new AutoCompleteBuilder("autocomplete");

            target.DataMap(item =>
            {
                item.Value  = "--country--";
                item.Source = new List <string> {
                    "India", "US"
                };
            }
                           );

            actual = Utility.ControlHtmlBuilder <AutoComplete, AutoCompleteBuilder>(target);
            Assert.AreEqual(expected, actual);
        }
 public AutoCompleteBuilderTests()
 {
     AutoComplete = AutoCompleteTestHelper.CreateAutocomplete();
     builder      = new AutoCompleteBuilder(AutoComplete);
 }
 public AutoCompleteBuilderTests()
 {
     AutoComplete = AutoCompleteTestHelper.CreateAutocomplete();
     builder = new AutoCompleteBuilder(AutoComplete);
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Método responsável por renderizar um componente auto-complete da telerik fortemente tipado na view
        /// </summary>
        /// <typeparam name="T">Provider de informação sobre a entidade tipada para o componente</typeparam>
        /// <param name="helper">Html Helper</param>
        /// <param name="autoCompleteProvider">Instância do objeto que contém definições do comportamento do componente</param>
        /// <returns>MvcHtmlString</returns>
        public static MvcHtmlString RenderAutoComplete <T>(this HtmlHelper helper, T autoCompleteProvider) where T : IAutoCompleteProvider
        {
            //criação do compoente de auto-complete
            AutoCompleteBuilder autoComplete = helper.Kendo().AutoComplete();

            //configuração do campo que será exibido na seleção do auto-complete
            autoComplete.DataTextField(autoCompleteProvider.DataTextField);

            autoComplete.Name(autoCompleteProvider.Name);
            autoComplete.Filter(FilterType.StartsWith);
            autoComplete.MinLength(autoCompleteProvider.MinLength);

            if (autoCompleteProvider.HtmlAttributes != null)
            {
                autoComplete.HtmlAttributes(autoCompleteProvider.HtmlAttributes);
            }

            //configuração dos handlers de eventos javascript
            if (!String.IsNullOrEmpty(autoCompleteProvider.OnChange))
            {
                autoComplete.Events(i => i.Change(autoCompleteProvider.OnChange));
            }

            if (!String.IsNullOrEmpty(autoCompleteProvider.OnClose))
            {
                autoComplete.Events(i => i.Close(autoCompleteProvider.OnClose));
            }

            if (!String.IsNullOrEmpty(autoCompleteProvider.OnDataBound))
            {
                autoComplete.Events(i => i.DataBound(autoCompleteProvider.OnDataBound));
            }

            if (!String.IsNullOrEmpty(autoCompleteProvider.OnSelect))
            {
                autoComplete.Events(i => i.Select(autoCompleteProvider.OnSelect));
            }

            if (!String.IsNullOrEmpty(autoCompleteProvider.OnOpen))
            {
                autoComplete.Events(i => i.Open(autoCompleteProvider.OnOpen));
            }

            //configuração do template do componente
            if (!string.IsNullOrEmpty(autoCompleteProvider.Template))
            {
                string template = ResourcesHelper.LoadResourceAsString(autoCompleteProvider.Template);
                autoComplete.Template(template);
            }

            if (!string.IsNullOrEmpty(autoCompleteProvider.HeaderTemplate))
            {
                string headerTemplate = ResourcesHelper.LoadResourceAsString(autoCompleteProvider.HeaderTemplate);
                autoComplete.Template(headerTemplate);
            }

            //configuração do end-point (método/controller) de acesso do componente
            autoComplete.DataSource(source =>
            {
                source.Read(read =>
                {
                    read.Action(autoCompleteProvider.ActionName, autoCompleteProvider.ControllerName);

                    //handler do evento javascript que envia informações extras para o server
                    if (!String.IsNullOrEmpty(autoCompleteProvider.OnSendData))
                    {
                        read.Data(autoCompleteProvider.OnSendData);
                    }
                }).ServerFiltering(true);
            });

            return(MvcHtmlString.Create(autoComplete.ToHtmlString()));
        }