Como usar “sorting” y “paging” en un gridview

Si tratas de usar sorting y paging a la vez en un gridview el sistema de devolverá un error como este:

“The GridView ‘GridViewID’ fired event PageIndexChanging which wasn’t handled.”

Lo que se debe hacer en el gridview es agregar los llamados que manejarán los eventos:

<asp:GridView ID=”gridView” OnPageIndexChanging=”gridView_PageIndexChanging” OnSorting=”gridView_Sorting” runat=”server” />

Y en el código las funciones:

private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;

switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = “ASC”;
break;

case SortDirection.Descending:
newSortDirection = “DESC”;
break;
}

return newSortDirection;
}

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridView.PageIndex = e.NewPageIndex;
gridView.DataBind();
}

protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = gridView.DataSource as DataTable;

if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + ” ” + ConvertSortDirectionToSql(e.SortDirection);

gridView.DataSource = dataView;
gridView.DataBind();
}
}

Como agregar un javascript: a un gridview

Utilizando un gridview debía utilizar un link javascript tipo “javascript:mi_funcion(‘xxxx’)” para abrir un pop-up con el detalle del registro que estaba seleccionando.

El problema es que usar datanavigateurlformatstring=”javascript:mi_funcion(‘{0}’)” no funciona por un error y me vi obligado a utilizar el siguiente código:

<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID=”HyperLink1″ runat=”server”
NavigateUrl=’<%# “javascript:ver_documento(” + chr(39) + Eval(“variable”) + chr(39) + “)” %>’
Text=”View”>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>

Espero les sea de utilidad.

Incentivos monetarios por encontrar errores en Google Chrome

Navegando me topé con esta noticia aqui, en resumen por cada error que desarrolladores localicen Google se compremete a una remuneración económica.

El fin de esta acción es mantener el Navegador de Google lo más seguro posible para los usuarios y así poder tener una respuesta más rápida a las posibles fallas de seguridad.

Bueno solo queda meterle manos a la obra y esperar localizar uno que otro “bug” para hacer un para de dolares.

Cómo obtener el datakey de un gridview con un boton (asp:ButtonField)

Primero que todo debemos crear el botón dentro del gridview y verificar que podamos ejecutar llamados desde él.
Para esto realizamos lo siguiente:

En el gridview agregamos estos parámetros:

AutoGenerateColumns=”False”
onRowCommand=”funcion_a_ejecutar”

Seguidamente en el cuerpo del gridview

Ya que tenemos esto creamos la funcion funcion_a_ejecutar de la siguiente forma:

Public Sub funcion_a_ejecutar(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
‘obtengo la linea del gridview que fue cliquiada
Dim seleccion As GridViewRow
seleccion = DirectCast(e.CommandSource, GridView).Rows(e.CommandArgument)
‘obtengo el datakey de la linea que donde está el boton que cliquie…
lbl_test.Text = migrid.DataKeys(seleccion.RowIndex).Value.ToString
End Sub

Espero les sea de utilidad a mi me costo un poco dar con el tema…

Cada vez que utilizamos el escritorio remoto (remote desktop) para acceder un servidor windows 2003 o 2008, una nueva sesión es creada la cual se maneja independientemente una de la otra.

Si queremos entrar y acceder las aplicaciones que están corriendo con el usuario que se encuentre registrado debemos entrar en modo de consola para este ejecutamos desde el ejecutar (run)

mstsc /console

En Vista sería

mstsc /admin

Como centrar un tabla usando css

Me he topado varías veces con este problema y siempre pienso que esta vez no se me va a olvidar. Por lo que decidí publicarlo para dejarlo por escrito.

Ponemos un <div> encerrando la tabla

<div class=centrar_tabla>

<table class=tabla_centrada><tr></tr></table>

</div>

Luego en el archivo css definimos:

.centrar_tabla
{
text-align: center;
}

.tabla_centrada

{
margin: 0 auto;
text-align: left;
}

Espero les sea de utilidad

Como cambiar “Home” en el menu de wordpress

Tengo un cliente que deseaba su site con wordpress y que estuviera en ingles y español. Usando un simple template se le desarrollo su sitio pero nos topamos con el problema de cambiar “Home” por inicio.

Para hacer esto debemos modificar el archivo “post-template.php”

Localizamos las siguientes líneas:

if ( ! empty($args['show_home']) ) {
if ( true === $args['show_home'] || ’1′ === $args['show_home'] || 1 === $args['show_home'] )
$text = __(‘Home’);

Y cambiamos

$text = __(‘Home’);

por:

$text = __(‘Inicio’);

Como hacer un botón con gradiente en CSS

Estoy desarrollando un website en el que quiero tener botones con gradiente y esquinas redondeadas pero sin tener que estar creando imagenes para cada uno. Por esto investigué un poco y encontre el código CSS que me permite realizarlo.

.button
{
behavior: url(border-radius.htc);
border-top: 1px solid #f7d186;
background: #e08619;
background: -webkit-gradient(linear, left top, left bottom, from(#e86823), to(#e08619));
background: -moz-linear-gradient(top, #e86823, #e08619);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#e86823, endColorstr=#e08619);
-ms-filter: “progid:DXImageTransform.Microsoft.gradient(startColorstr=#e86823, endColorstr=#FEB764)”;
padding: 5.5px 11px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-shadow: rgba(0,0,0,1) 0 1px 0;
-moz-box-shadow: rgba(0,0,0,1) 0 1px 0;
box-shadow: rgba(0,0,0,1) 0 1px 0;
text-shadow: rgba(0,0,0,.4) 0 1px 0;
color: white;
font-size: 22px;
font-family: Helvetica, Arial, Sans-Serif;
text-decoration: none;
vertical-align: middle;
text-align:center ;
}
.button:hover {
border-top-color: #de7d07;
background: #de7d07;
color: #404040;
}
.button:active {
border-top-color: #ffffff;
background: #ffffff;
}

El archivo .htc lo puedes encontrar aqui

Como utilizar WebRequest a través de un proxy

Si tu acceso a internet es a través de un proxy que requiere de autenticación necesitaras configurar esta información para poder utilizar “WebRequest”.

Para hacer esto debes hacer lo siguiente:

Dim miproxy As New WebProxy(“ejemplo.dominio.local:8080″)

Dim nc As New NetworkCredential(“miusuario”, “micontraseña”, “eldominio”)
proxy.Credentials = nc

Dim miRequest As WebRequest
miRequest.Proxy = proxy

Como leer valores de configuración del web.config en Asp.net

El archivo web.config funciona como un repositorio de información que es accedidad por las páginas web. Algunos de los valores que podemos guardar son como por ejemplo las cadenas de conexión a la base de datos, lo cual nos permite una rápida modificación en el evento de que esta cambiase.

Este es una fracción del web.config:

<configuration>
<appSettings/>
<connectionStrings>
<add name=”BaseDatos” connectionString=”server=localhost;uid=sa;pwd=;database=ejemplo”/>
</connectionStrings >
</configuration>

Para poder leer esta información realizamos los siguiente:
En Vb.Net

Dim cnn As String
cnn = System.Web.Configuration.WebConfigurationManager.ConnectionStrings(“BaseDatos”).ConnectionString

En C#

string cnn;
cnn = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BaseDatos"].ConnectionString;