lunes, 22 de noviembre de 2010

Subir o bajar el Scroll de un div con JavaScript

Esta es una función para realizarlo con animación

<script type="text/javascript">

var t;
var doLoop = true;

function scrollDivToTop(divid)
{
var div = document.getElementById(divid);

if (div.scrollTop>0 && doLoop)
{
div.scrollTop-=3;
t = setTimeout("scrollDivToTop('" + divid + "')", 1);
}
else clearTimeout(t);
}

function scrollDivToBottom(divid)
{

var div = document.getElementById(divid);

if (div.scrollTop<999999999 && doLoop)
{
div.scrollTop+=3;
t = setTimeout("scrollDivToBottom('" + divid + "')", 1);
}
else clearTimeout(t);
}

function stop()
{
doLoop = false;
setTimeout('doLoop = true;', 5);
}

</script>

Lo importante es esta parte

div.scrollTop=0; //0 para que se suba al principio del div  y 999999999 para que baje al fondo del div

Join entre DataTables en LINQ

private void algo()
{
     DataTable dtPolizas = new DataTable();
     DataTable dtServicios = new DataTable();
     var ret = from p in dtPolizas.AsEnumerable()
               join q in dtServicios.AsEnumerable() on p.Field<int>("ID") equals q.Field<int>("ID") into UP
               from q in UP.DefaultIfEmpty()
               where (q.Field<string>("estado") == "00" || q.Field<string>("estado") == "12" && q.Field<int>("estado") == Convert.ToInt32(DateTime.Now.AddDays(-90).ToString("yyyyMMdd")))
               select new
               {
                   ID = Convert.ToDateTime(p.Field<int>("ID")),
                   Type = p.Field<string>("Type"),
                   Part = q.Field<int>("Part"),
                   Quantity = q.Field<int>("Quantity")
               };
     foreach (var ins in ret)
     {
     }
}

Filtrar caracteres de una cadena con LINQ

private string ReemplazarCadena(string pOrigen, int pTamano)
{
IEnumerable stringQuery =
from ch in pOrigen
where !Char.IsNumber(ch)
select ch;
foreach (char item in stringQuery)
pOrigen = pOrigen.Remove(pOrigen.IndexOf(item),1);

pOrigen = pOrigen.PadLeft(pTamano,'0');
return pOrigen;
}

lunes, 12 de julio de 2010

Contador regresivo en JavaScript

Contador regresivo generado en JavaScript

var tiempo = 10;

function ContadorRegresivo()
{
var valor = document.getElementById('tiempo');
valor.value = tiempo;
tiempo = tiempo-1;
if (tiempo > -1)
{
setTimeout("ContadorRegresivo()", 1000);
}
}

function InicializarContador()
{
tiempo = 10;
ContadorRegresivo();
}

lunes, 5 de julio de 2010

Error con el ambiente de Visual Studio 2010

En caso de que al generar una referencia web el editor muestre este mensaje "Los componentes de enumeracion de servicios web no estan disponibles. es necesario reinstalar visual studio para agregar las referencias web a su aplicacion"

Se debe ingresar el comando devenv /resetskippkgs

martes, 13 de abril de 2010

Hacer que la página expire

Muchas veces se requiere que una página se cargue en su totalidad, en ocasiones para evitar que el navegador despliegue nuevamente los datos que se ingresaron la última vez que se presentó la página

Para evitar esto se debe quitar la página del cache agregando las siguientes instrucciones

Código en C#

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Código en Vb.net

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetNoStore()


lunes, 29 de marzo de 2010

Como instalar un servicio desarrollado en .net

Para instalarlo se ejecuta desde la línea de comando de .net la siguiente instrucción

 

installutil  “ruta del ejecutable”

para desinstalar se ejecuta la siguiente

installutil  /u “ruta del ejecutable”

viernes, 5 de marzo de 2010

Agregar usuario en Active Directory desde .net (C# Framework 3.5)

using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;

public string AgregarUsuario(string pUsuario,
string Nombre,
string Apellido,
string PasswordEncriptado,
string email,
bool forzarCambioClave,
bool ClaveNoExpira,
bool UsuarioHabilitado)
{
try
{
string[] arrTokens = _domainName.Split(new char[] { '.' }, 100, StringSplitOptions.None);
string LDAPDomainPath = this._ouName + ",DC=" + string.Join(",DC=", arrTokens);

//Contexto del active directory (Raíz)
PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, this._serverName + "." + this._domainName, LDAPDomainPath, "UsuarioConPrivilegiosEnElAD", "ClaveDelMismo");//"domainController.Dominio.com" "Dominio.com","DC=dominio,DC=com"

//Creamos el nuevo usuario


UserPrincipal user = new UserPrincipal(insPrincipalContext, pUsuario.Trim(), PasswordEncriptado, UsuarioHabilitado);

//Nombre de la entidad de seguridad
user.GivenName = Nombre.Trim();
user.DisplayName = Nombre.Trim();

//Apellido del Usuario
user.Surname = (Apellido == "") ? Nombre.Trim() : Apellido.Trim();

//Usuario @ Dominio
user.UserPrincipalName = pUsuario.Trim().ToLower() + "@" + _domainName;

if (Cedula.Length < 20)
user.SamAccountName = Cedula.Trim().ToLower();
else
user.SamAccountName = Cedula.Trim().Substring(0, 20).ToLower();

//Seteamos el correo
if (email.Trim() != "")
user.EmailAddress = email;

//force the user to change password at next logon
if (forzarCambioClave)
user.ExpirePasswordNow();

//El password no expira
if (ClaveNoExpira)
user.PasswordNeverExpires = true;

//save the user to the directory
user.Save();


return "true,Usuario incluido satisfactoriamente";
}
catch (Exception ex)
{
return "false," + ex.Message;
}


}

miércoles, 27 de enero de 2010

Pasar valores a una ventana padre de un popup

<script type="text/javascript">
    function Salir() {
        window.opener.document.getElementById('TextBox1').value = document.getElementById('texto').value; //Aqui asigna el valor al textbox del padre
        window.opener.document.getElementById('form1').submit(); //hace le hace el submit al padre
        window.close(); //cierra el popup
    }
</script>

lunes, 4 de enero de 2010

Crear un servicio de Windows con intervalo

En el archivo Designer.cs del servicio se deben modificar las siguientes líneas

private void InitializeComponent()

{

this.mytimer = new System.Timers.Timer();

((System.ComponentModel.

ISupportInitialize)(this.mytimer)).BeginInit();

//

// mytimer

//

this.mytimer.Enabled = true;

this.mytimer.Interval = 300000; //El equivalente en milisegundos en este caso son 5 minutos

this.mytimer.Elapsed += new System.Timers.ElapsedEventHandler(this.mytimer_Elapsed);

//

// Nombre del Servicio

//

this.ServiceName = "Nombre del Servicio";

((System.ComponentModel.

ISupportInitialize)(this.mytimer)).EndInit();

}

Luego en el código del servicio de programan los siguientes metodos

protected override void OnStart(string[] args)
{
   //Se ejecuta cuando se inicia el proceso
}

protected override void OnStop()
{
   //Se ejecuta cuando se ejecuta el proceso
}

private void mytimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    //Se ejecuta una vez que ha trascurrido el tiempo definido en el

//Timer

}

 

 

 
Locations of visitors to this page