Multi-Building Object Control

Iniciado por Shell Root, 16 Octubre 2012, 01:31 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

jajaja no tenia que otro nombre ponerle...

Tengo varios controles que se llena de la "misma" forma, (BulletedList, DropDownList, ListBox), que se llenan por medio de un SqlDataReader, se podría generar una función que devuelva el control con los parámetros establecidos en la función. Cabe destacar que se debe de retornar el mismo tipo de control.

La función seríal algo al estilo de...
Código (csharp) [Seleccionar]
public <sTypeControl> fnBuildObj( Object sObj, String sQuery, String sText, String sValue )
{
  /* ... */
  return <sTypeControl>;
}


y lo llamaría algo así,
Código (csharp) [Seleccionar]

this.BulletedList1 = fnBuildObj( BulletedList, sQuery, sText, sValue );
this.DropDownList1 = fnBuildObj( DropDownList, sQuery, sText, sValue );
this.ListBox1      = fnBuildObj( ListBox, sQuery, sText, sValue );
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Novlucker

No entendí si es una pregunta o una afirmación :xD


Mi consejo sería que el método con el SqlDataReader solo se encargue de retornar una lista de objetos de negocio (objetos de algún tipo en específico).
Por otra parte, podrías usar un tipo genérico en lugar de el object del primera parametro.


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Shell Root

Es una pregunta jajaja :p,

Como hago para que la funcion tenga un tipo de datos, igual, al que se le da en el parametro sObject, con el fin que cuando retorne el valor, sea del mismo tipo de dato...

Lo que quiero es automatizar el uso de esos controles, y solo enviar parametros y que ya la funcion se encargue de todo...

No se como hacerlo, lo que hice fue la lógica, de como sería... Podrías darme un ejemplo?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Novlucker

#3
Algo así ...
Código (csharp) [Seleccionar]
public T fnBuildObj<T>(T sObj, string sQuery, string sText, string sValue) where T : ListControl
{
return sObj;
}


En este caso he limitado el método a los "ListControl" (DropDownList, ListBox y BulletedList lo son por ejemplo), y retorno el objeto tal cual ingresa, así que tu deberías de agregar el resto del código.

Mirando mejor me he dado cuenta de que tu problema es otro y lo había malentendido, entonces mejor así ...
Código (csharp) [Seleccionar]
public T fnBuildObj<T>(string sQuery, string sText, string sValue) where T : ListControl
{
    T a = Activator.CreateInstance<T>();
    return a;
}


Saludos


Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Novlucker

Bueno, me quede con la duda de si era lo que buscabas o ya no ...

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein