lunes, 2 de noviembre de 2009

bajar un archivo de forma simple con vb.net

Dim wc As New System.Net.WebClient
dim archivoBajado as string = "C:\a.txt"
dim url as string = "www.ddd.com/a.txt"
wc.DownloadFile(url, archivoBajado)

miércoles, 23 de septiembre de 2009

clase customizada de membership no accede al CreateUser

Cuando se crea una clase custom de membership, y se sobreescribe la funcion CreateUser, en vez de tomar el nuevo creado, toma el original.
La solucion es llamar al CreateUser de esta forma:

Membership.Provider.CreateUser

Como obtener el path de inicio desde global.asax

El resolveUrl no funciona porque no hay una pagina, pero se puede hacer un truco, que aunque no es limpio, nos permite obtener el path.
El ResolveUrl es un metodo de Control, asi que podemos crear un control y pedir el metodo en el global.asax.

string path = (new Control).ResolveUrl("~/aaaa.aspx");

lunes, 14 de septiembre de 2009

Validar valor de un control custom

Se debe agregar el atributo ValidationPropertyAttribute al principio de la clase, indicando la propiedad que contendra el valor a validar

<ValidationProperty("Message")> _
Public Class myCustomControl

Public ReadOnly Property Message() As String
Get
Return "My Message"
End Get
End Property
End Class


viernes, 28 de agosto de 2009

Obtener nombre de usuario logueado en un control ascx

dim usuario as string=HttpContext.Current.User.Identity.Name

como obtener el connection string a traves del nombre

dim nombre as string="Local"
dim cs as string=ConfigurationManager.ConnectionStrings(nombre).ConnectionString

miércoles, 26 de agosto de 2009

MultiView cannot have children of type 'Literal'. It can only have children of type View

Esto pasa porque una o todas las View's no tienen el parametro runat="server".
Entonces el control toma esto como controles html, "labels".

asp:view id="Step1" runat="server">

Crear Ventana modal para IE y Firefox

Por lo menos para Firefox 3, anteriores no lo probe
Se pone en un bloque de codigo javascript y se llama desde un onClientClick de algun boton.


function ShowModalWindow(url) {

if (window.showModalDialog) {
window.showModalDialog(url, "name", "dialogWidth:650px;dialogHeight:500px")
}
else {
window.open(url, 'name', 'width=650,height=500,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no ,modal=yes')
}

}

lunes, 24 de agosto de 2009

Obtener ultimo id del registro creado en una tabla en SQL Server

La siguiente linea obtiene el ultimo id de registro que se creo para la conexion actual y en el scope del comando actual:

SELECT SCOPE_IDENTITY()

viernes, 21 de agosto de 2009

Debo dar dos clicks al boton de cancelar dentro de un ModalPopupExtender para que ejecute

Aparentemente en un modalpopupextender tener validaciones trae problemas y no permite que se ejecuten los botones respectivos.

Asi que la mejor solucion es poner las validaciones en un grupo, es decir, poner:
ValidationGroup="algo1"

en todos los validadores y en los botones que validan esos datos (inclyendo el Cancelar). De esa forma el boton funciona y no hay problemas.

El Click de un boton en un ModalPopupExtender no funciona

Aparentemente al tener varios modalpopupextenders en una sola pagina y tener validaciones trae problemas y no permite que se ejecuten los botones respectivos.
Asi que la mejor solucion es poner las validaciones en un grupo, es decir, poner:
ValidationGroup="algo1"

en los validadores y en los botones que validan esos datos. De esa el boton funciona con esas entradas y no hay problemas.

jueves, 6 de agosto de 2009

salir de una ventana modal en .net



Despues de mucho buscar encontre la solucion a poder salir de una ventana modal (creada con ShowModalDialog), despues de poder procesar codigo en el server.
Ademas esta el problema que tenia un updatepanel de ajax, y eso causaba mas problemas.
Es esto mismo:

ScriptManager.RegisterStartupScript(Page, typeof(Page), "salir", "", false);

Con cualquier otro metodo salia un error que decia:
Sys.WebForms.PageRequestManagerParserErrorExcepti on: The message received
from the server could not be parsed. Common causes for this error are when
the response is modified by calls to Response.Write(), response filters,
HttpModules, or server trace is enabled

lunes, 1 de junio de 2009

BetFair Referal code


£25 Free Bet offered now! 
Use this promotion code clicking here:

Go to Betfair.com

Betfair 

Betfair is the trading name of The Sporting Exchange Ltd.It is the world's biggest betting exchange, with 20% better odds than traditional bookmakers, and a recipient of the Queen's Award for Enterprise.

The Sporting Exchange Limited is registered as a limited liability company in England and Wales, company number 3770548. The Sporting Exchange Limited was founded in August 1999 by Andrew Black and Edward Wray in order to commercialise proprietary betting technology that had been under development for the preceding year.

The technology used by The Sporting Exchange Limited is proprietary and, as well as being protected by copyright, is the subject of several patent applications that have been filed with various jurisdictions.

miércoles, 4 de febrero de 2009

capturar evento de una clase

Cuando se necesite "unir" un evento de una clase a un metodo que lo reciba se debe hacer esto:
AddHandler claseExterna.GenerarError, AddressOf metodoGenerarErrorLocal

El metodo que reciba el evento debe tener los parametros necesarios para recibir los datos que envia el evento con los tipos de datos correctos

martes, 3 de febrero de 2009

Name 'ProfileCommon' is not declared

Este error se presenta cuando la seccion del web.config no esta declarada.
Un ejemplo de declaracion dentro del web.config es (dentro de la seccion system.web):
<profile>
<properties>
<add name="Nombre">
<add name="Apellido">
</properties>
</profile>

ConfigurationManager no esta declarado

  • Primero ir a Add Reference del proyecto y agregar una referencia de .Net a System.configuration
  • Luego agregar una referencia en la clase en la que se necesita a:

imports System.Configuration

miércoles, 28 de enero de 2009

Insertar imagen en celda de excel con vb.net

Sub insertarImagenCelda(ByVal objExcelWks As Excel.Worksheet, ByVal rutaImagen As String, ByVal coordenadas As Pair)
Dim imagen = objExcelWks.Pictures.Insert(rutaImagen)
Dim cell = objExcelWks.Cells(coordenadas.First, coordenadas.Second)
'Centro en ancho
Dim ancho As Double = cell.Offset(0, 1).Left - cell.Left
imagen.Left = cell.Left + ancho / 2 - imagen.Width / 2
If imagen.Left < 1 Then imagen.Left = 1
'Centro en alto
Dim alto As Double = cell.Offset(1, 0).Top - cell.Top
imagen.Top = cell.Top + alto / 2 - imagen.Height / 2
If imagen.Top < 1 Then imagen.Top = 1

liberarObjeto(imagen)
liberarObjeto(cell)
End Sub

Liberar memoria objeto COM vb.net

Al final de la liberacion de todos los objetos COM usar GC.Collect()
Private Sub liberarObjeto(ByVal objeto As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(objeto)
objeto = Nothing
Catch ex As Exception
objeto = Nothing
End Try
End Sub

Como liberar la memoria acumulada por el vb.net

Simplemente agregar al final una llamada al garbage collector para que actue:
GC.Collect()

manejar o capturar eventos a una funcion en vb.net

Si una clase exporta un evento "ejecutar" y queremos asignarselo a una funcion, debemos hacer lo siguiente:


AddHandler Clase1.ejecutar, addressof Actualizar

sub Actualizar()
' Poner alguna accion que se quiera ejecutar
end sub

viernes, 23 de enero de 2009

Obtener nombre pagina actual

Del objeto request se obtiene todo el path a la pagina, y con el objeto Fileinfo obtenemos solo el nombre corto de la pagina.

string pagina = (New System.IO.FileInfo(Page.Request.Url.AbsolutePath)).Name

miércoles, 7 de enero de 2009

Implementar, declarar y lanzar eventos en vb.net

En una clase que se quiere "publicar" un evento, debemos crearlo primero y ejecutarlo despues:

1) Declararlo

Public Event evento as EventHandler
o
Public Event evento(objeto as Control, Cancelar as Boolean)

2) Lanzarlo
dim cancelar as boolean
RaiseEvent evento(me, cancelar)

Como crear una clase que se valide con un validator

Agregar el atributo siguiente a la clase:

_
Public Class Test
'...


Public Property Valor() As Integer
Get
Return _Valor
End Get
Set(ByVal value As Integer)
_Valor= value
End Set
End Property

End Class

Como aplicar un TargetControl a una clase

_
Public Class Test
'...
End Class

viernes, 2 de enero de 2009

Obtener directorio donde se ejecuta la aplicacion

string path = System.AppDomain.CurrentDomain.BaseDirectory;