En un blog anterior habia comentado el ejemplo que esta en el sitio de NetBeans sobre la importación de componentes Ajax, a Visual Web Pack.
Ahora mencionare una forma sencilla de utilizar el componente de texto para autorrellenado.Lo que haremos es algo sencillo, basado en tutoriales de Java Studio Creator, simplemente a medida que
escribamos las palabras estas seran buscadas en la base de datos y se desplegaran en el
campo de texto para que el usuario las seleccione.
Su uso es sencillo, simplemente creamos una nueva pagina arrastramos el componente a la pagina
luego escribimos el evento:
en el metodo _init()
//arrastramos la tabla a la pagina
direccionesRowSet.setDataSourceName("java:comp/env/jdbc/mybasedatos");
//establecemos la condicion de busqueda usando el campo del que deseamos localizar (en este ejemplo direccion) y luego like
direccionesRowSet.setCommand("SELECT * FROM direcciones where direccion like ?");
direccionesRowSet.setTableName("direcciones");
direccionesDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet)getValue("#{usuarioRegistrarse.direccionesRowSet}"));
en el metodo init()
// colocamos valores de "" al parametro para la condicion like ?
try{
distritosRowSet.setObject(1, "");
} catch (Exception e) {
error("No se puede ejecutar la sentencia -- " + e);
log("Exception: " + e);
}
ahora en el metodo del ajax textfield
//a medida que se escriben las letras se va refinando las busquedas
public void direccionAjaxTextField_complete(FacesContext context, String prefix, CompletionResult result) {
// TODO: Return your own list of items here based on the prefix
//result.addItem("Hello");
//result.addItem(prefix.toUpperCase());
if (prefix == null || prefix.length() < 1) {
return;
}
// result.addItem("inicio");
try {
String prefixLeadingCap = prefix.substring(0, 1).toUpperCase() + prefix.substring(1)
+ '%'; // phase 3
result.addItem(prefixLeadingCap);
// % means match any string starting with prefix, convert to leading
// caps for better matching
try { // phase 1
direccionesRowSet.setObject(1, prefixLeadingCap); // phase 3, first parameter is 1
// later replaced by refresh below
} catch (SQLException e) {
result.addItem("Exception: " + e); // for debugging, otherwise comment out
// or change for security purposes
return;
}
try { // phase 2
direccionesDataProvider.refresh(); // executes the query
if (!direccionesDataProvider.cursorFirst()) {
// result.addItem("Vacio"); // for debugging, comment out otherwise
return; // the query returned no rows
}
do {
String partName = (String) direccionesDataProvider.getValue("direcciones.direccion");
result.addItem(partName);
} while (direccionesDataProvider.cursorNext());
} catch (DataProviderException e) {
result.addItem("Exception: " + e); // for debugging, otherwise comment out
// or change for security purposes
}
} catch (Exception se) { // remove this catch after you have
// finished debugging
result.addItem("UnknownException: " + se);
}
// result.addItem("final");
}
Comments