Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - DanteInfernum

#1
Supongamos que tengo un control repeater muy sencillo; consiste sólo de dos labels.

Código (asp) [Seleccionar]
<asp:Repeater ID="repeater" runat="server">
    <ItemTemplate>
        <asp:Label ID="label1"  runat="server" />
        <asp:Label ID="label2" runat="server" />
    </ItemTemplate>
</asp:Repeater>



Quiero acceder a una de las labels del Repeater desde el code behind:

Código (csharp) [Seleccionar]
namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Label label = (Label)repeater.FindControl("label1");
        }
    }
}



Sin embargo, siempre me devuelve null. ¿Qué estoy haciendo mal? ¿Cuál sería la forma de encontrar estos controles?
Lo he intentando de mil y una formas y no doy con el clavo...
#2
Estoy intentando crear un login y autenticación de usuarios sin utilizar los controles propios de ASP.NET para esto.

Al principio de cada página, tenía pensado agregar:

           
Código (csharp) [Seleccionar]

protected void Page_Load(object sender, EventArgs e)
{
            if (usuario == null)
            {
                throw new Exception("Debe iniciar sesion para poder ver el contenido de la pagina.");
            }
}



O sea, la idea es que si se intenta acceder a la página sin tener permiso, el usuario sea redireccionado a la página de login y ahí se mostrará un cartel (label o lo que sea) indicándole que debe iniciar sesión.

¿Es posible capturar excepciones lanzadas de cualquier página así? O sino, ¿Qué otra forma habría de hacer esto? El problema es que tengo que cambiar programáticamente un label de la página de login (para mostrar el error) desde otra página diferente.
#3
Enlacé una lista a un GridView. Esta lista está compuesta por objetos de tipo Reunion. Cada reunión tiene una propiedad Empleado, y a su vez cada empleado tiene una propiedad Nombre.

El siguiente código funciona para mostrar el nombre del empleado en una columna de tipo TemplateField del GridView.

Código (asp) [Seleccionar]
<asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label runat="server" Text='<%# Eval("empleado.Nombre")%>'>
                        </asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>



La pregunta: ¿Por qué es necesario enlazar mediante el método Eval? Si intento hacerlo con Bind, me tira un error de compilación.
¿Con el método Bind no es posible acceder a las propiedades de las propiedaes (propiedades de segundo nivel) del origen de datos?
#4
Y digo interesante dejando de lado todas esas morbosidades que abundan por ahí.

Yo particularmente no me topé con nada en la Deep Web que no pueda ser encontrado con el mismo san Google de siempre. Las más asquerosas y repulsivas páginas de gore andan sueltas a la luz del día también. Alcanza con saber hacer clic donde dice "soy mayor de 18 años" para poder acceder a ellas. (Hasta un "niño" de 17 saber hacerlo...)

Lo más interesante que me encontré por así decirlo fue una supuesta página de la NASA (al menos eso decía el cartelito). Un sitio repleto de PDF's de unos muuuy áridos textos científicos, recargados todos ellos de monstruosas fórmulas matemáticas; como ensayos de física cuántica y cosas por el estilo.
Yo le intenté pegar una leída a uno, y creo que únicamente Steve Hawkins te puede llegar a entender algo de todo eso.

En conclusión: interesante, sí; ¿provechoso? no tanto. Al menos para mí.

#5
Resulta que he leído que en la actualidad prácticamente se considera una aberración el usar tablas para disponer el diseño de una página web.
En vez, se recomienda ordenar el contenido mediante el uso de etiquetas div.

Ahora estoy estudiando .NET, por lo que uso Visual Studio.
He visto algunos tutoriales en youtube sobre maquetación web, y parece que mucha gente no tiene problema alguno en usar tablas mientras trabaja con Visual Studio.
¿A qué se debe esto? ¿Resulta más fácil trabajar con tablas cuando se trabaja de forma más "visual"? Ya que uno va a andar arrastrando controles en vez de andar acomodándolos con código HTML y CSS.

Me gustaría saber sus opiniones, cuál es la práctica más extendida al hacer páginas en Visual Studio. ¿Tablas sí o tablas no?
#6
La pregunta es bastante elemental; talvez por ser tan básica es que no consigo encontrar la respuesta por ningún lado...

Tengo una solución que consta de varios proyectos. Uno de estos proyectos tiene una clase, pero dentro de ésta no aparece declarado el espacio de nombre al cual pertenece. Sin embargo el compilador no da prablema alguno, así que supongo que el mismo Visual Studio se encarga de asignarle un espacio de nombres predeterminado.

He comprobado que el ámbito de esta clase sin espacio de nombres es el proyecto al que pertenece (no puedo acceder a ella desde los otros proyectos de mi solución).  Eso me lleva a pensar que su espacio de nombres es el mismo del proyecto al que pertenece, pero también he leído por ahí algo de que el espacio de nombres predetermiando es global namespace (cosa que no termino de entender por el momento).

¿Cuál es el espacio de nombres por defecto? ¿Es el mismo espacio de nombres del proyecto que contiene a la clase, u otro distinto asignado por Visual Studio automáticamente?
#7
El problema es el siguiente:

Tengo una tabla Seguros con todos los seguros vendidos por los vendedores.
Quiero seleccionar el(o los) vendedor(es) que más seguros haya(n) vendido.
Para esto, averiguo cuantos seguros ha vendido cada vendedor:

Código (sql) [Seleccionar]
SELECT Count(*)
FROM seguros
GROUP BY vendedor


¿Y ahora? ¿Cómo selecciono el o los valores máximos de esta consulta?
Tendría que encontrar algo similar a Max(Count(*)) (cosa que no existe en SQL)

Estoy usando SQL Server.
#8
Quiero crear un procedimiento que en caso de error me retorne el número del error.
Tengo el siguiente código:

Código (sql) [Seleccionar]
CREATE PROCEDURE proc4
@idSeccion nchar(3),
@descripcion varchar(20)
AS
BEGIN
INSERT INTO Secciones
VALUES(@idSeccion, @descripcion)
IF @@ERROR <> 0
BEGIN
RETURN @@ERROR
END
ELSE
BEGIN
RETURN 1
END
END


Pero, a pesar de producirse el error, siempre me devuelve 0.
¿Cuál sería la forma correcta de conseguir esto? ¿Qué estoy haciendo mal?
#9
Bases de Datos / T-SQL ¿Cuándo debo usar GO?
17 Septiembre 2013, 19:42 PM
Tengo el siguiente script de ejemplo para crear una base de datos:


Código (sql) [Seleccionar]
use master
go
create database Prueba
go
use Prueba
go
Create table Empleados(A, B, C)
go
Create table Secciones(D, E, F)
go
insert into Empleados values('Ana', 'Sosa', 'Yi 1111')
insert into Empleados values('Eva', 'Rocha')
go
insert into Secciones values('Cre', 'Credito')
        insert into Secciones values('Ger', 'Gerencia')



Mis preguntas: ¿Es absolutamente necesario usar el GO cada vez que creo algo? Porque he visto que perfectamente puedo omitir algunos y el script se sigue ejecutando tal cual lo hacía antes. ¿Es una buena práctica usar tantos GO cómo sea posible?
#10
El asunto es así:

Tengo 2 tablas, Empleados y Trabajan. La columna IdEmp es clave primaria de Empleados y a su vez clave foránea de Trabajan. Quiero componer las dos tablas mediante un inner join y mostrar todos los datos resultantes.

Tengo la siguiente consulta en SQL:

select *
from empleados inner join trabajan
on empleados.idemp = trabajan.idemp


La cuestión es que IdEmp pertenece a las 2 tablas, por lo que al mostrar todos los datos esta columna se repite. Me gustaría saber qué puedo hacer para evitar esto (sin tener que seleccionar las columnas que quiero mostrar una por una).
#11
Me interesaría estudiar qué es lo que realmente hace el método Clone, paso a paso. Para esto, he estado intentando verlo a través de Reflector.

Lo que obtengo es lo siguiente:

public object Clone()
{
    return base.MemberwiseClone();
}


Veo que este método invoca a otro, o sea, a MemberwiseClone().
Lo busco:

[MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
protected extern object MemberwiseClone();


Y acá directamente ya no entiendo más nada...
¿Por qué no veo el método expresado sentencia a sentencia, de la misma forma que el resto?


#12
Los aficionados a la informática suelen pasar horas y horas frente al monitor; lo que no es muy recomendado, ya que supuestamente hacer eso te come toda la vista.
¿Qué tan cierto será? ¡Vamos a averiguarlo!

La pregunta entonces:
¿Cuántos de ustedes usan lentes/gafas/anteojos?
#13
Estoy usando Visual Studio 2005, y el problema es que el compilador lo único que me da es la descripción del error, pero no el archivo en el que se produce ni en que línea específica.
Lo raro es que sólo tengo este problema con un proyecto en particular, con todos los demás funciona normal. ¿A que creen que se pueda deber esto?

Saludos.
#14
Foro Libre / Universidad Hacker [libro]
27 Julio 2013, 01:59 AM
Hola a todos. Les comparto links a un libro que hallé de lo más interesante. Sobre todo por la forma en que está estructurado, a modo de programa universitario. Lo he buscado por el foro y la verdad que no lo encontré por ningún lado.
Tiene una currícula específica para cada uno de los 3 años del ciclo universitario.

Original en portugués:
http://es.scribd.com/doc/28220560/Universidade-Hacker-4a-Edicao

Traducción al castellano:
http://es.scribd.com/doc/63912618/Universidad-Hacker-en-espanol

Leí una parte de la traducción y se puede decir que es bastante buena. La única contra que tiene es que se pierde gran parte de las bromas que tiene el original, pero supongo que esto era previsible, ya que el libro muchas veces hace referencia a temas bastante locales, propios de Brasil.

Publico el tema acá porque no sé en qué subforo particular hacerlo.
Los temas que trata son amplios, y el libro no termina de encajar completamente en ningún subforo en especial, salvo el de Tutoriales - Documentación, que no se puede publicar nada (al menos en una primera instancia).

Saludos.
#15
.NET (C#, VB.NET, ASP) / Duda de diseño.
23 Julio 2013, 21:41 PM
Estoy haciendo un ejercicio, el cual pide crear el sitio web de una empresa de seguros. Tengo una clase Empresa, la cual implementa métodos para gestionar las clases CorredorSeguros y Cliente. Estas dos últimas clases no tienen nada en común, salvo el atributo nombre.

Ahora, mi preguta: ¿Qué es mas conveniente? ¿Utilizar dos listas genéricas en mi clase Empresa para coleccionar por separado objetos de las clases CorredorSeguros y Cliente? ¿O en cambio, utilizar sólo una lista para coleccionar instancias de ambas clases?

Si colecciono los objetos de cada una de las clases por separado, tendría que implementar métodos específicos para cada una de las dos colecciones; en cambio, si los colecciono en una única lista, me ahorro implementar algunos métodos, pero en cambio debería hacer unos cuantos casteos. Y esta única lista sería de tipo Persona, una clase base que la crearía únicamente para derivar de ella mis clases CorredorSeguro y Cliente. Pero como dije, no tienen nada en común, sería una herencia forzosa, ya que la clase base (Persona) sería prácticamente una clase vacía.

Pongo un ejemplo para que todo sea más entendible:

Coleccionando por separado.

class Empresa
    {
        List<CorredorSeguros> listaCorredores;
        List<Cliente> listaClientes;

        public void AgregarCorredor(CorredorSeguros c)
        { }

        public CorredorSeguros BuscarCorredor(string nombre)
        { }

        public void AgregarCliente(Cliente c)
        { }

        public Cliente BuscarClientes(double ci)
        { }
    }

    class CorredorSeguros
    {
        string usuario;
    }

    class Cliente
    {
        double cedulaIdentidad;
    }


Coleccionando en una única lista genérica de tipo Persona.

class Empresa
    {
        List<Persona> lista;

        public void Agregar(Persona p)
        { }

        public Persona Buscar(string usuario)
        { }

        public Persona Buscar(double ci)
        { }
    }

    class Persona
    { }

    abstract class CorredorSeguros : Persona
    {
        string Usuario;
    }

    class Cliente : Persona
    {
         double cedulaIdentidad;
    }



O sea, lo que gano por un lado lo pierdo por el otro... En el ejemplo, me ahorro implementar dos veces el método Agregar(). Por otra parte, en cuanto al método Buscar(), debo andar verificando si cada elemento de la lista es del tipo que estoy buscando,y después tengo que castear lo que me devuelve el método.
#16
¿Es posible ver el consumo de memoria que va utilizando mi programa?
Me gustaría por ejemplo poder ir viendo cada variable u objeto que voy creando y cuanto espacio va utilizando en memoria.
¿Hay alguna opción en Visual Studio que me permita ver esto?
#17
Pues eso mismo. Es una preguntonta de la cual probablemente ya conozca su respuesta, pero como con preguntar no se pierde nada (salvo el respeto y la dignidad en algunos casos...), ahí les va.
¿Hay alguna forma de, por ejemplo, ver el código de la clase Random en C#? Me intriga saber cómo surgen mágicamente estos numeritos aleatorios, o cómo se implementan las colecciones dinámicas, etc, etc.

¡Saludos!