La historia de mis desventuras

Palabras más, palabras menos sobre desarrollo de software.

Archivar como 16 marzo 2010

Breve Autocomplete Helper con ASP.NET MVC y jQuery

Publicado por Jhonny López Ramírez en 16 marzo 2010

Han pasado ya varios días desde la última vez que escribí algo en el blog. Escaso tiempo. Vengo hoy con un pequeño Helper construido para hacer las veces de Autocomplete en ASP.NET MVC. Se trata de un ejemplo sencillo basado en un práctico jQuery Autocomplete (que pueden descargarse de aquí).

Una vez he descargado el paquete paso a descomprimirlo y a pegar los archivos claves en las rutas correspondientes, como muestro en la siguiente imagen:

2

Lo siguiente que haré será crear el HtmlHelper para automatizar el proceso de escritura de la función que hará la gracia. Para hacerlo tengo que disponer de una clase con los modificadores de acceso public y static y dentro un método de extensión a la clase HtmlHelper. Pongo aquí el código:

using System.Text;

using System.Web.Mvc;

 

namespace AutoCompleter.Helpers

{

    public static class MyHelpers

    {

        public static string AutoCompleter(this HtmlHelper helper, string name, string controller, string action, string fieldName, bool mustMatch)

        {

            StringBuilder html = new StringBuilder("<script type=\"text/javascript\">");

 

            html.Append("$(document).ready( function() {");

            html.AppendLine("$('#" + name + "').autocomplete('/" + controller + "/" + action + "/', {");

            html.AppendLine("dataType: 'json',");

            html.AppendLine("parse: function(data) {");

            html.AppendLine("var rows = new Array();");

            html.AppendLine("for(var i=0; i<data.length; i++){");

            html.AppendLine("rows[i] = { data:data[i], value:data[i]." + fieldName + ", result:data[i]." + fieldName + " };");

            html.AppendLine("} return rows;},");

            html.AppendLine("formatItem: function(row, i, n) {");

            html.AppendLine("return row." + fieldName + ";},");

            html.AppendLine(" width: 300, mustMatch: " + mustMatch.ToString().ToLower() + " , });});</script>");

 

            return html.ToString();

 

        }

    }

}

 

Leer el resto de esta entrada »

Publicado en Desarrollo de software | Etiquetado: , | Deja un Comentario »

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 163 seguidores