Archive for the ‘ asp.net ’ Category

Error al utilizar .RenderControl en un gridview

Al tratar de utilizar .rendercontrol para generar un archivo de excel me topé con error algo peculiar que me decia que el control debe estar dentro del <form>

Este es el código:

llenar_grid(); //llena el gridview
Response.Clear();
Response.AddHeader(“Content-Disposition:”, “attachment; filename=Report.xls”);
Response.Charset = “”;
Response.ContentType = “application/vnd.ms-excel”;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
drg_datos.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

Esto me generó el error antes mencionada el cual resolví agregando lo siguiente:

public override void VerifyRenderingInServerForm(Control control)
{
return;
}

Espero les sea de utilidad

Como convertir un IList a Datatable

Trabajando en una aplicación que me permite sincronizar información con uno de mis clientes me tope con la necesidad de transformar un IList que era entregado por el cliente a un DataTable.
Asi quedo todo:

Public Shared Function IList_DataTable(Of T)(ByVal list As IList(Of T)) As DataTable
Dim td As New DataTable
Dim entityType As Type = GetType(T)
Dim properties As PropertyDescriptorCollection = TypeDescriptor.GetProperties(entityType)

For Each prop As PropertyDescriptor In properties
td.Columns.Add(prop.Name)
Next

For Each item As T In list
Dim row As DataRow = td.NewRow()

For Each prop As PropertyDescriptor In properties
row(prop.Name) = prop.GetValue(item)
Next

td.Rows.Add(row)
Next

Return table
End Function

Funcion isNumeric en vb.net

Tratando de validar si una variable era númerica en vb.net me tope con que no encontraba la función isnumeric. Despues de buscar e investigar un poco me percate que si quería usarla debía incluir “microsoft.visualbasic” en los Imports.
Si al final no deseas utilizar este namespace puedes validar si un valor es númerico con el siguiente código:

Public Function IsNumeric(ByVal str As String) as boolean
Dim r As Regex = New Regex(“\d+”)
Dim m As Match = r.Match(str)
If (m.Success) Then
Return True
End If
Return False
End Function

Como agregar un javascript de confirmación en asp.net

Si queremos por ejemplo eliminar un registro de un gridview o eliminar datos de un formulario, lo más normal es solicitar al usuario si realmente desea realizar este borrado.

Para esto debemos asociar el boton que dispara el evento de eliminar un javascript que haga la pregunta.
Esto lo debemos hacer en el page_load

If Not IsPostBack Then
Me.btn_yes.Attributes.Add(“onclick”, _
“return confirm(‘Esta seguro?’);”)
end if

Si la persona seleccione no el evento click del botón no se ejecutará.

Como especificar el src de un iframe por código en asp.net

Si en alguna ocasición tienes la necesidad de utilizar un iframe en tu código .net y necesitas dinámicamente a través del código indicarle el atributo src de tu iframe deberás hacer lo siguiente:

En el lado del aspx creamos el iframe

<IFRAME id=”ifrm_ds” scrolling=”auto” runat=”server” width=”996″ frameborder=”0″ height=”600″>
</IFRAME>

Y para asignarle el atributo del lado del código:

ifrm_ds.Attributes(“src”) = “enrutador.aspx”

Con esto podrás dirigir tu iframe a cualquier url que desees.

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.

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…

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;