Controlar IsPostBack con JavaScript

Filed Under (.Net, JavaScript) by admin on 02-11-2010

Tagged Under : , , ,

Es posible que en ocasiones con algun script de carga con ajax y habiéndolo mezclado con los “maravillosos” controles de .Net haga por algún sitio un postback, con lo que la carga inicial se vuelva a realizar…

pues bien para este caso y otros casos que sea necesario controlar el PostBack con Javascript, os dejo como controlarlo:

 

var prm = Sys.WebForms.PageRequestManager.getInstance();
if(!prm.get_isInAsyncPostBack()) {
// llamada
}

Modificar longitud de un nchar en SQLSERVER

Filed Under (SQLServer) by admin on 22-10-2010

La consulta es la siguiente:

ALTER TABLE tabla
ALTER COLUMN nombrecampo nchar(5) not null

donde 5 es la nueva longitud

Primera letra de cada palabra en mayúsculas con C#.NET

Filed Under (.Net) by admin on 21-10-2010

Tagged Under : ,

Es muy fácil, solo con importar la librería:

System.Globalization

Y después ya se puede utilizar la función:

CultureInfo.CurrentCulture.TextInfo.ToTitleCase(texto)

Iniciar/detener un servicio con la línea de comandos en Windows

Filed Under (Windows) by admin on 08-10-2010

Tagged Under : , ,

La herramienta Netsh (netsh.exe) permite automatizar el inicio y el término de un servicio utilizando una línea de comandos:

  • Para iniciar un servicio: Net start nombre_del_servicio
  • Para detener un servicio: Net stop nombre_del_servicio

Personalizar DataMember de DataContract

Filed Under (.Net) by admin on 22-06-2010

Tagged Under : ,

Os pongo un ejemplo, ya que en ocasiones lo que se quieres es cambiar el nombre por ejemplo de la columna que queremos formar a partir de los datos enviados. Pues bien es tan facil como “reescribir el atributo Name”

[DataContract(Name="status")]

public class StatusData

{

    private string _name;

    private string _errorDescription = null;
    [DataMember(Name = "name1", Order = 0, EmitDefaultValue=false)]

    public string Name

    {

        get { return _name; }

        set { _name = value; }

    }
    [DataMember(Name = "error", Order = 1, EmitDefaultValue=false)]

    public string Description

    {

        get{ return _errorDescription ;}

        set {_errorDescription =value ;}

    }

...

}

Problemas con las llamadas AJAX.NET en JSON: {“d”:{“__type”:”

Filed Under (.Net) by admin on 09-06-2010

Tagged Under : , ,

Parece ser que por defecto cuando incluimos una llamada AJAX.NET con un servicio y la serializamos en formato JSON, nos devuelve unos datos que no queremos: {“d”:{“__type”:”

Esto es porque puede haber un desbarajuste entre los tipos de datos de JavaScript y .NET y de esta forma se cura en salud….

Estos datos nos pueden producir problemas por ejemplo si tenemos una estructura de tabla (en mi caso un dataTable con YUI y el Datasource viene con un esquema bien definido. )

Pues bien esto se soluciona haciendo un pequeño ajuste en el webconfig:

  1. Configuramos el behaviour como webHttp y no como enableWebScript (sería como por defecto con {“d”:{“__type”:”)
  2. Y registramos el servicio:

 

 

 

 

Como llamar a métodos del code beside del ASPX con Js

Filed Under (.Net) by admin on 12-05-2010

Tagged Under : , , ,

1- creamos el metodo Js como normalmente lo hacemos. Ej: dimeHora()
2- lo asignamos a un evento de un boton (o de lo que sea) como normalmente hacemos … onclick=”dimeHora”
3- definimos en el code beside un metodo con y estatico (Shared)

Public Shared Function DameHora() As String
Return DateTime.Now.ToLongTimeString()
End Function

4- Para utilizarlo debemos activar la propiedad EnablePageMethods = True del ScriptManager(manejador de js de ASP.NET). Normalmente este se define en la MasterPage, pero sino se puede hacer un ScriptManager.GetCurrert()
5- Después para llamarlo solo tenemos que utilizar en el js el PageMethods:
PageMethods.DameHora()

Como quedaría el js:
function dimeHora()
{
PageMethods.DameHora(finLlamada, gestorDeErrores)
}
// finLlamada y gestorDeErrores manejan los resultados si ha ido bien o mal, como ya hacemos


Y porque os envio esto?
- No hace falta crear un servicio
- Reduce la carga de servidor, mejora el UpdatePanel que envía toda la información en los autoposback asíncronos
- no hace autoposback
- trabajamos con datos devueltos del método que estamos acostumbrados a trabajar en js (hacer eval)

Error en el inicio de instalación VS2008

Filed Under (.Net) by admin on 06-05-2010

Tagged Under : , ,

Si al iniciar la instalación de Visual Studio 2008 te produce un error y tienes instalado Microsoft Office 2007…
tienes la solución aqui¡¡ Se trata del Infopath que trae dicha versión, para desistalarlo solo tienes que ejecutar esto:

msiexec /x {30120000-0044-0C0A-0000-0000000FF1CE}

Caracteres extraños (cuadraditos) en nvarchar SQLServer

Filed Under (SQLServer) by admin on 06-05-2010

Tagged Under : , ,

Tenemos un campo nvarchar(1) de la base de datos que se introduce con un carácter extraño, modificamos la carga y se introducían bien pero había que cambiar las ya existentes. Para ello se pensó en muchas cosas (codificación, tamaño de la cadena, etc) dando al final con esta solución:

Problema:
cuadraditos

Solución:
UPDATE Esquema.Tabla
SET Campo = 'valorquequeremos'
WHERE ASCII(Campo) = 0

ASP.NET AJAX UpdatePanel ScriptManager – Dirigir el Foco hacia un Control

Filed Under (.Net) by admin on 27-04-2010

Tagged Under : , , , ,

Tradicionalmente cuando queremos dirigir el foco hacia un control hacemos esto:

Control.focus();

PERO si trabajamos con ASP.NET AJAX con un ScriptManager y un UpdatePanel al hacer postback asincrono el UpdatePanel , pierde el foco, para que esto no ocurra insertamos esta linea de codigo para lograr tener el foco donde queramos.

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);

scriptManager.SetFocus(CONTROL);

CONTROL = Textbox(Caja de Texto)

Espero los haya ayudado , suerte con sus desarrollos.

PS: el metodo.SetFocus(CONTROL) , tiene como paramentro cualquier tipo de CONTROL ASP.NET asi que podemos usar cualquier CONTROL