[WTF] Declarando un un propiedad den VB.NET

29 10 2009

Buenas,

Otro ejemplo de lo que no debemos hacer :P

“Declarando una propiedad en VB.NET”

 

Public Property IsActivo() As Int32
    Get
        Return _isActivo
    End Get
    Set(ByVal value As Int32)
        value = Me._isActivo
    End Set
End Property

Este es más bueno que el anterior jajaja

Saludos.

Etiquetas de Technorati: ,




[WTF] Localizando un sitio con ASP.NET

29 10 2009

Aquí el primero de varios post, donde colocare código que resulta gracioso. Claro estos se podría clasificar como chistes para desarrolladores.

Aquí el primero titulado “Localizando un sitio con ASP.NET”

 

Select Case cl_Culture.getTagCulture
    Case "en-US"
        Me.lblFieldGpo.Text = "Group:"
        Me.lblFieldGpo2.Text = "Group:"
    Case Else
        Me.lblFieldGpo.Text = "Grupo:"
        Me.lblFieldGpo2.Text = "Grupo:"
End Select

 

Apoco no es chulo este código, cabe mencionar que solo sirve para Ingles y Español xD.

Por cosas como estas es que adoro ser desarrollador. :D . No les digo quien escribió esto pa’ no quemarlo

Saludos.

Etiquetas de Technorati: ,




[ASP.NET] Enviar un mail desde una cuenta de Hotmail, Live

28 10 2009

Buenas,

Este es un tema quizá muy leído en internet, pero aquí un ejemplo rápido de como hacerlo desde una una cuenta de Hotmail, Live. Solo es cuestión de configurar algunas propiedades de nuestro cliente smtp.

Para hacer la prueba debemos crear un nuevo sitio web, agregamos un botón y en el evento click del botón agregamos el siguiente código.

protected void btnSendMail_Click(object sender, EventArgs e)
{
    MailMessage mail = new MailMessage();
    mail.To.Add("norberto.rojas@live.com");
    mail.To.Add("north_18rojas@hotmail.com");
    mail.From = new MailAddress("norberto.rojas@live.com");
    mail.Subject = "Mail usando Live";

    string Body = "Hola" + Environment.NewLine +
                  "Este es un mail de prueba..." + Environment.NewLine +
                  "Utilizando live in ASP.NET";
    mail.Body = Body;

    mail.IsBodyHtml = true;

    SmtpClient smtp = new SmtpClient();
    smtp.Host = "smtp.live.com";
    smtp.Port = 587;
    smtp.UseDefaultCredentials = false;
    smtp.Credentials = new System.Net.NetworkCredential
    ("tucorreo@live.com", "tucontraseña");
    smtp.EnableSsl = true;
    smtp.Send(mail);

}

Esto es lo único que necesitamos para envía un mail, como se darán cuenta en la siguiente imagen el correo fue enviado correctamente y recibido en tiempo.

image

image

 

Bueno, espero que les sea de utilidad.

Saludos.

Etiquetas de Technorati: ,,,,




[LINQ] SELECT en LINQ To SQL

10 10 2009

Buenas,

Aquí el primero de unos post rápidos de LINQ TO SQL, para aquellos que estamos aprendiendo :D . Comenzamos con un SELEC

 

1.- Select * from —-> xD

T-SQL

SELECT * FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = From e In sel.EntradasBlogs Select e

C#

var selec = from e in sel.EntradasBlogs
                          select e;

 

2. Select —> en un solo campo

T-SQL

SELECT Titulo FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = From e In sel.EntradasBlogs Select e.Titulo

C#

var selec = from e in sel.EntradasBlogs select e.Titulo;

3.- Select —> obtenido el primer registro

T-SQL

SELECT TOP 1 Titulo FROM dbo.EntradasBlog

LINQ TO SQL

VB.NET

Dim [select] = (From e In sel.EntradasBlogs Select e.Titulo).First

C#

var selec = (from e in sel.EntradasBlogs
                         select e.Titulo).First();

4. Select —> un registro en especifico

T-SQL

SELECT Titulo FROM dbo.EntradasBlog
WHERE id = 1

LINQ TO SQL

VB.NET

Dim [select] = sel.EntradasBlogs.SingleOrDefault _
                (Function(c) c.Id = "0000000001")

donde ser es:

Dim sel As New DemosDataContext

ó

Dim [select] = (From e In sel.EntradasBlogs _
                     Where e.Id = "0000000001" _
                       Select e.Titulo).Single

C#

var selec = sel.EntradasBlogs.SingleOrDefault(c
                        => c.Id == "0000000001");

ó

var selec = (from e in sel.EntradasBlogs
             where e.Id == "0000000001"
             select e).Single();

5. Select —> un numero especifico de registros

T-SQL

SELECT TOP 3 * FROM dbo.EntradasBlog 

LINQ TO SQL

VB.NET

Dim [select] = (From e In sel.EntradasBlogs).Take(3)

C#

var selec = (from e in sel.EntradasBlogs
                         select e).Take(3);

6. Select—> con subquerys

T-SQL

SELECT Titulo FROM dbo.EntradasBlog
WHERE id = (SELECT id from dbo.Entradas
            WHERE (id = '0000000001'))  

LINQ TO SQL

VB.NET

Dim [select] = _
        (From e In sel.EntradasBlogs _
        Where (From en In sel.Entradas _
               Where (en.id = "0000000001") _
               Select en.id).Contains(e.Id) _
        Select e.Titulo)

C#

var selec = from e in sel.EntradasBlogs
                        where (
                                from en in sel.Entradas
                                where en.id == "0000000001"
                                select en.id
                                ).Contains(e.Id)
                        select e.Titulo;

Bien parece que estos son algunas maneras de realizar Select desde LINQ2SQL, ya en otros post’s iremos hablando sobre otras sentencias.

Etiquetas de Technorati: ,,,




[WCF] Consumiendo un Servicio de WCF

6 10 2009

Buenas,

Ya es un poco tarde y me he estado peleando un buen rato con un error al consumir un servicio de WCF. Cree mi servicio agregue mi referencia y cuando creo objeto de dicho servicio me muestra el siguiente mensaje:

Could not find default endpoint element that references contract ‘Service.IService’ in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

Indague in poco en Google y todos me dicen que se trata de que debo poner mi nombre de espacios antes del contrato, pues bien lo hice y no resulto nada :S. Así que comencé a revisar el Webconfig de mi Servicio (Todo bien), luego el app.config de mi aplicación que consume el Servicio (Todo bien, esta aplicación es una librería).

Luego mi aplicación principal también tiene un app.config (esta es una aplicación de WPF), y vi que este archivo no contenía nada :S y al parecer Visual Studio estaba buscando en ese archivo el contrato :P , y lo que hice es copiar el contenido que genera el asistente en el app.config de mi aplicación de librería y pasarlo al app.config de mi  aplicación WPF y listo, todo funciona correctamente. :D

Por si no me explique aquí unas imagenes.

1.- Muestra el error:

image

2.- Esta es la estructura de mi solución, solo necesito mover mi archivo app.config.

image

Solo basta con arrastrar mi app.config desde mi proyecto cliente al principal, y listo. Espero que les sea de utilidad y no pierdan tanto tiempo como yo :P

Etiquetas de Technorati: ,,




[WPF]Agregar referencia de ensamblado en código XAML

25 09 2009

Buenas,

Aquí un post rápido de como hacer lo que menciona el titulo del post. Este escenario se presenta cuando creamos un proyecto de tipo “Biblioteca de clases” y queremos agregarlo a nuestro Ventana.xaml o control, etc, pero desde código.

Debemos tener primero que cuando creamos el proyecto de biblioteca de clases contener un nombre de espacio para nuestras clases. una es esto basta con agregar la siguiente línea de código en la definición de nuestra ventana:

xmlns:local="clr-namespace:MiNombreDeEspacio;assembly=MiClase"

en donde local será el nombre de nuestro espacio de nombres dentro del código XAML y cuando lo usemos seria de la siguiente manera:

local:MessageListener.Instance

Bueno espero que le sirva este post para no perder tiempo :D

Etiquetas de Technorati: ,




[IE8] Asegúrate de que tus sitios Web sean Compatibles con IE8

20 09 2009

Buenas,

En esta semana me he encontrado con este detalle en el desarrollo de un sitio para la empresa en donde trabajo, así que me puse a investigar un poco y me he encontrado con una serie de recursos muy interesantes para asegurarnos que nuestros sitios sean compatibles con la ultima versión de IE.

El más completo de este recurso es el que enlazo a continuación:

http://support.microsoft.com/default.aspx/kb/956197

El cual se titula:

Es posible que algunos sitios web no se muestren o funcionen correctamente en Windows Internet Explorer 8

Espero que si tiene algunos problemas, revisen este articulo y salgan de problemas.

Etiquetas de Technorati: ,




[C#] Pirámide iterativa

7 09 2009

buenas,

Pues yo aquí de ocioso, y perdiendo el tiempo un rato, me encontre con un post de una piramide iterative en C++, la verdad es que hace mucho que no programo en C++, así que le di una miradita rápida al código y pense…”creo que el desarrollador de este código se complico un poco colocando unas validaciones de más”, y luego…”porque no hacer lo en C#”, (C# es mi lenguaje favorito :D ), aquí el enlace con el código en C++

http://jmonroy.wordpress.com/2009/09/03/piramide-iterativa-c/

Y aquí mi código:

namespace PiramideIterativa
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Valor Inicial: ");
            int valorInicial = int.Parse(Console.ReadLine());
            Console.Write("Tamaño: ");
            int tamaño = int.Parse(Console.ReadLine());

            for (int i = 1; i <= tamaño; i++)
            {
                Console.SetCursorPosition(25 - i, i + 1);
                for (int j = 1; j <= (i * 2) - 1; j++)
                {
                    Console.Write(valorInicial);                    

                    if (j <= (i - 1))
                    {
                        valorInicial = valorInicial * 2;
                    }
                    else if(j != (i * 2 -1))
                    {
                        valorInicial = valorInicial / 2;
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

Bueno este es otro post rápido, ya me voy a comer.

Saludos

Etiquetas de Technorati: ,,




[Games] HALO 3 ODST

6 09 2009

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Etiquetas de Technorati: ,





[Vista] Problema con explorador de Windows Vista ‘dejo de funcionar’

3 09 2009

Buenas,

Otro post rápido, si les ocurre este problema al dar clic-derecho sobre algún archivo o carpeta en el explorador de Windows y este se queda atorado y no responde, aquí el como solucionarlo. (hasta el momento a mi me funciona).

Bien hay que bajarse una herramienta que nos muestra los programas instalados en nuestra máquina con todas las características aquí el link:

http://www.nirsoft.net/utils/shexview.html

Una vez que lo bajan y ejecutan nos muestra la lista de los programas instalados, lo que yo hice, fue buscar los programas que no perteneces  Microsoft y checar cuales contienen Menú contextual, y los desactive (esto es presionando F7) y listo, con esto el explorador ya no debe de fallar. Se supone que el problema es que esos menús contextuales no son compatibles y causan errores, espero que les sea de utilidad.

Saludos.





[Word] Saber el total de páginas en un documento

3 09 2009

Otro post rápido, para contestar al comentario de un lector del blog…

“Primero, quiero agradecer que comenten, esto me ayuda a seguir posteando y claro a ustedes a seguir leyendo para compartir información, pero a lo que voy.”

Para saber el total de páginas la clase Microsoft.Office.Interop.Word.Application nos provee de una instrucción, pero para entender mejor esto… realice una demo rápida en un proyecto de tipo Console Application, aquí el código:

 

Sub Main()
    'Instancia de Word
    Dim Word As New Microsoft.Office.Interop.Word.Application

    'Abrimos un documento
    Word.Documents.Open("Ruta de tu documento")
    Word.Application.Visible = True
    Word.WindowState = WdWindowState.wdWindowStateMaximize

    'Mostramos el total de páginas del documento
    Dim totalPaginas As String = String.Empty

    totalPaginas = Word.Selection.Information(WdInformation.wdNumberOfPagesInDocument).ToString

    Console.WriteLine("El documento {0} contiente {1} paginas", Word.ActiveDocument.Name, totalPaginas)

    Console.WriteLine("preciona la tecla 'X' para cerrar el documento")

    Dim cerrar As Char = Console.ReadLine

    'Cerramos el archivo sin guardar cambios
    Select Case cerrar
        Case "X"
            Word.ActiveDocument.Close(SaveChanges:=False)
            Word.Application.Quit()
        Case "x"
            Word.ActiveDocument.Close(SaveChanges:=False)
            Word.Application.Quit()
    End Select

    Console.ReadLine()
End Sub

Creo que es muy fácil de entender, y si tienen alguna duda, ya saben que pueden comentar y si tengo la respuesta seguro lo poste. Como es otro post rápido aquí lo doy por terminado :P

Nota: no se les olvide agregar la referencia a la clase Microsoft.Office.Interop.Word.Application y después hacer su respectivo Imports:

Imports Microsoft.Office.Interop.Word

Saludos.

Etiquetas de Technorati: ,,,




[IE8] Múltiples sesiones en un mismo sitio, gracias IE8

31 08 2009

Seguramente muchas veces hemos querido hacer esto, no lo nieguen, pero estoy seguro que muchos no lo pudieron hacer, pero gracias a una de las nuevas características de IE, esto es posible. Esto es gracias a la posibilidad de crear una nueva sesión, que básicamente nos crear un nuevo conjunto de cookies que no interviene con las de otra sesión, recuerden que en las cookies se guarda las sesiones, como hacemos esto:

image

Del menú Archivo seleccionar Nueva seion y listo, se abre una nueva sesión de nuestro internet explorer, en donde podemos loguearnos con otro usuario, muy útil para la fase de pruebas de nuestros sitios :P

Etiquetas de Technorati: ,




[IE8] Tag de compatibilidad para tus sitios

31 08 2009

Buenas,

Últimamente estoy muy ocupado con el trabajo, pero aquí de nuevo un post rápido ahora sobre la compatibilidad de nuestros sitios con IE8. Para iniciar identificamos que nuestro sitio no es compatible con IE8 si observamos este icono en el explorador:

image

Bien, nos vamos a nuestra página y en el código HTML dentro del Head colocamos esta línea:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Listo, este tag es mejor conocido como tag de compatibilidad de IE8, que básicamente le dice al navegador que interprete la página como si fuera IE7. En mi caso para no estar colocando este tag en cada página, lo realizado desde una página maestra incorporando el tag en el header y listo :D





[LINQ] Ejecutar Order By And Distinct en un mismo Query

31 08 2009

Buenas,

Otro post rápido, bien usando LINQ To SQL  me encontré con un detalle, si escribo algo así:

Dim var = From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Order By org.Nombre _
       Select org

Todo funciona correcto, pero si quiero agregarle un Distinct como siguie:

Dim var = (From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Order By org.Nombre _
       Select org).Distinct

Esto deja de funcionar :S, bien, parece que el problema es del Framework de LINQ, o algo hay al momento de crear el query, pero a lo que voy, para poder solucionar esto debemos usar un Order By Compare como sigue:

 

Dim var = ((From org In Organismos _
       Join es In Estados On es.Id Equals org.IdEstado _
       Select org).Distinct).OrderBy(Function(orga) orga.Nombre)

Y listo, ya funciona correctamente :D

Bien, como es un post rápido, pues ya lo dejo y seguiré trabajando :P , aquí una buena rolita que escucho mientras escribo el post

Etiquetas de Technorati: ,,




[Errores] Error al cargar el paquete ‘Visual Web Developer HTML Source Editor Package’

27 08 2009

Seguramente esto les sucede a muchos de los usuarios de Visual Studio (en sus diferentes versiones), ya antes había comentado que este error por lo regular se corrige ejecutando la siguiente instrucción:

devenv /resetskippkgs en la ruta: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE> como se ven en la siguiente figura:

image

Bien, pues esto al parecer no es la solución correcta, ya que esto me había pasado con el editor de XAML, y en ese momento así lo solucione, pero ahora me paso con el editor de HTML y después de instalar el Service Pack 1 de SQL Server 2008. Este problema ocurre cuando los idiomas de Windows y de Visual Studio son diferentes, en muchos lugares de internet dicen que reinstales VS 2008 con el idioma correcto y todo ese rollo, pero estarán de acuerdo que esto es muy tedioso y existe otra manera de hacer, más fácil y más rápido, que es la siguiente:

En el Visual Studio nos vamos a Herramientas->Opciones->Entorno->Configuración Internacional y ahí seleccionar el idioma que corresponde a la instalación de Visual Studio.

En mi caso tengo instalado Windows 7 en Ingles, y Visual Studio 2008 en Español, tengo que seleccionar el Idioma español en el Visual y no el que dice: Igual que en Microsoft Windows, como se ve en la figura:

image

Despúes de esto hacemos click en Aceptar y listo esto debe de funcionar, aunque si no funciona, es porque seguro cuando les muestra el mensaje dieron que No a la opción de cargar en un futuro el paquete, por cualquier cosa, ejecuten de nuevo: devenv /resetskippkgs para que esto funcione, y como ven no es necesario reinstalar ni Windows ni mucho menos Visual Studio, espero que les sirva esto y no pierdan tanto tiempo. :D

Saludos.

Etiquetas de Technorati: ,,




[ASP.NET] Validar un Dropdownlist dentro de un UpdatePanel

10 08 2009

Este caso se da mucho cuando tenemos algo como el siguiente formulario:

image

En donde el primer ddl (dropdownlist) se llena con un origen de datos (sqldatasource, objectdatasource, etc) y según el país que seleccione se llena el estado, esto dentro de un UpdatePanel para que solo se refresque estos controles de nuestra página.

Aquí tenemos que validar que el usuario seleccione una opción que no sea la predeterminada, para esto existen varias maneras de hacerlo, aquí un post de como hacer esto:

http://geeks.ms/blogs/rduarte/archive/2008/10/19/validar-dropdownlist-con-requiredfieldvalidator-y-customvalidator.aspx

Solo que con alguna de estas opciones dentro del UpdatePanel no funciona, ¿por qué?, la verdad no lo sé con exactitud, por eso les ofrezco esta otra solución, yo valido los ddl con un CompareValidator de la siguiente manera:

 

<asp:DropDownList ID="ddlPais" runat="server" Width ="250px"
                  AutoPostBack="True" DataTextField="Nombre"
                  DataValueField="Id" AppendDataBoundItems="True" >
</asp:DropDownList>
<asp:CompareValidator ID="cvPais" runat="server"
            ControlToValidate="ddlPais" Display="Dynamic"
            Text="<strong>*</strong>" SetFocusOnError="true"
            Type="Integer" Operator="GreaterThan"
            ValueToCompare="0" ValidationGroup="valPaso1"></asp:CompareValidator>
                   

Y lleno los siguientes ddl en su respectivo evento DataBound para el valor por Default, y en el evento change lleno los datos correspondientes a la selección del ddl anterior:

 

Protected Sub ddlPais_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPais.DataBound
    Me.ddlPais.Items.Insert(0, New ListItem("--Seleccione un País--", 0))
End Sub

Protected Sub ddlPais_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPais.SelectedIndexChanged
    'Aquí llenamos el ddl estado con el valor seleccionado del ddlPais
End Sub

Espero que esto les sea de utilidad.

Saludos.





[IE8] Nuevos Tutoriales para Desarrolladores

25 07 2009

Como desarrollador, no puedo negar que en el desarrollo web tenemos que lidiar con la estandarización, sobre todo con las hojas de estilos (CSS), y ahora con el nuevo IE8 al menos yo tengo algunas diferencias con estos  entre un explorador y otro, bueno a lo que voy, recientemente se ha publicado una serie de tutoriales en la página de MSDN aun lo estoy revisando, ya que precisamente estoy iniciando con el desarrollo de un nuevo sistema, que ya les platicare después lo que vaya aprendiendo.

Por el momento me es grato compartir con ustedes esta información, y aquí la tienen:

Herramientas de desarrollo para IE8

http://msdn.microsoft.com/en-us/library/dd565622(VS.85).aspx





[Office] Office 2010 The Movie

18 07 2009

 

Etiquetas de Technorati: ,,




[Futbol] El Tri te necesita… Pon a ‘San Temo’ de cabeza

18 07 2009

Desde siempre me ha gustado el futbol, mucho tiempo he jugado y como la mayoría en México tengo un equipo favorito (el Atlas). El objetivo de este post es para difundir un post que encontré en la página de http://www.mediotiempo.com/ la verdad es que me causo un poco de risa, y la verdad tengo que decir que me considero fan del Temo, y aquí mi contribución a difundir el mensaje Pon a ‘San Temo’ de cabeza aquí el post:

  • "San Temo" es la máxima esperanza mexicana para llegar a Sudáfrica

En la vida y el futbol todo está permitido. En Medio Tiempo, hemos decidido colaborar con la Selección Mexicana en su búsqueda por clasificar a la Copa del Mundo Sudáfrica 2010. En tiempos tan complicados, no hay más alternativa que recurrir a cualquier instancia para que el equipo de más de cien millones de mexicanos cumpla con su objetivo, de ahí que a partir de este día ponemos a “San Temo” de cabeza.

san-temo_1

“San Temo” es nuestra máxima esperanza para acceder a la máxima justa balompédica del orbe. Te invitamos a que coloques su imagen en foros, redes sociales, Messenger y cualquier otro medio de comunicación que contribuya a fortalecer el sentido de unión y esperanza que sólo el santo oriundo de Tepito puede darnos.

Ayúdanos a poner a “San Temo” de cabeza. Prepárate, porque no sólo nos ayudará a clasificar al Mundial; también te abrirá la puerta para ganarte premios especiales.
A partir de hoy, todo México pone a “San Temo” de cabeza.

Saludos!!





[ASP.NET] Ejecutando código JavaScripts desde HTML ó desde Code-Behind

17 07 2009

Creo que la mayoría sabemos que en el desarrollo Web siempre hacemos uso de los scripts y creo que todos hemos tirado mínimo una función de Javascript así que este post trata de como trabajar con estos script en ASP.NET.

1.- Escribiendo Javascript desde el HTML y llamándolo desde el Code-Behind.

Código HTML

<script type="text/javascript" >
    function validarTextbox(){
        if (document.forms[0].txtNombre.value == "") {
            alert('El Cuadro de texto no puede estar vacio');
            return false;
        }
        return false;
    }
</script>

Llamándolo desde el Code-Behind

protected void Page_Load(object sender, EventArgs e)
{
    btnAceptar.Attributes.Add("onclick", "javascript:return validarTextbox();");
}

2. Escribir y llamar una función Javascript desde el Code-Behind

protected void Page_Load(object sender, EventArgs e)
{
    //cadena que contiene el script a ejecutar
    string stringJavascript;
    stringJavascript = "<script language=\"javascript\"> function poponload(){\n";
    stringJavascript += "testwindow = window.open(\"demo.htm\",\"Window\");\n";
    stringJavascript += "testwindow.moveTo(0,0);\n";
    stringJavascript += "return false;}";
    stringJavascript += "</script>";
    //registramos el script
    ClientScript.RegisterStartupScript(this.GetType(), "strJavascript", stringJavascript);
    //lo asignamos al evento del boton
    btnAceptar.Attributes.Add("onclick", "return poponload()");
}

3.- Escribir Javascript desde el Code-behind y llamarlo desde HTML

Código en el lado del Servidor

protected void Page_Load(object sender, EventArgs e)
{
    string jscript = string.Empty;
    jscript = "<script language=\"javascript\">function Mensaje(){alert" +
        "(\"Client Function in javascript is call\")}</script>";
    ClientScript.RegisterStartupScript(this.GetType(), "sJscript", jscript);
}

Llamándolo desde HTML

<a onclick="Mensaje();">
    <asp:Label id="Label1" runat="server" Width="281px" ForeColor="#8080FF">
        Clic para llamar a la función del Code-Behind
    </asp:Label>
</a>

4. RegisterClientScriptBlock

Esto lo podemos usar si es que no necesitamos que se ejecute una función que creamos, sino solo una parte de un script, aquí el como hacerlo:

Si queremos mostrar una alerta podemos hacer lo siguiente, en el HTML escribimos:

<script language="javascript">
    function mensaje() {
        alert("funcion llamada desde el Code-Behind");
    }
</script>

y si lo queremos ejecutar desde el Code-Behind según lo que escribí arriba sería así:

 

protected void Button1_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript
            (this.GetType(), "jsKey", "javascript:mensaje();", true);
    }

Pero si se dan cuenta aquí solo es un código Javascript relativamente corto, entonces aquí es donde podemos usar RegisterClientScriptBlock y para ello lo hacemos así:

protected void Button2_Click(object sender, EventArgs e)
{
    ClientScript.RegisterClientScriptBlock
        (GetType(), "javascript", "<script>alert(" +
        "\"Este es un Bloque de código javascript \")</script>");
}

Actualización: 2 horas más tarde :P

5. Registrar el script en el evento Load en el Header de nuestra página:

por lo regular cuando agregamos un script solo lo arrastramos desde el explorador de soluciones al Header de nuestra página y nos genera código HTML más o menos así:

<script src="js/mensaje.js" type="text/javascript"></script>

Pero si se han dado cuenta la etiqueta Head en asp.net tiene un atributo runan=”server”, lo que significa que podemos manipularlo desde el Code-Behind lo que nos permite registrar un script desde el lado del servidor, aquí el como hacerlo, primero creamos una función que se llama RegistrarScript:

private void RegistrarScript()
{
    HtmlGenericControl script = new HtmlGenericControl("script");
    script.Attributes.Add("type", "text/javascript");
    script.Attributes.Add("src", "js/mensaje.js");
    Header.Controls.Add(script);
}

Aquí nos indica que en nuestro proyecto tenemos un Javascript llamada “mensaje.js” dentro de una carpeta llamada js. Este método lo ponemos dentro del evento load de nuestra página:

protected void Page_Load(object sender, EventArgs e)
{
    RegistrarScript();
    Button1.Attributes.Add("onclick", "javascript:return mensaje()");
}

Y de esta manera podemos registrar también nuestros script, e incluso las hojas de estilo.

Saludos.

Etiquetas de Technorati: ,,