ASP.NET - Repeater, error de vinculo

 
Vista:

Repeater, error de vinculo

Publicado por DanielGT (11 intervenciones) el 22/09/2004 06:58:23
Hola chicos.

Tengo un problema, es algo complejo, pero ojala puedan ayudarme.

Tengo una pagina con el siguiente codigo

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objProducto As New SisControl.Producto()
Dim arrProductos As System.Collections.ArrayList

Try
arrProductos = objProducto.Listado(-1, -1, -1, 127, "")
Repeater_1.DataSource = arrProductos
Page.DataBind()
Catch excepcion As System.Exception
Response.Write(excepcion.Message)
End Try
End Sub

la llamada a objProducto.Listado(-1, -1, -1, 127, "") , consulta a una base de datos, y me devuelve en un arrayList, que en este caso particular tengo solo 1 registro en mi base de datos, de modo que el arrayList tiene 1 elemento. Ahora bien, objProducto.Listado devuelve un arrayList con objetos ListadoProductos, la cual es una clase del siguiente tipo:

Public Class ListadoProductos
Inherits SisControl.Producto

Public id_proveedor As Short
Public nombre_prov As String
Public rut_prov As String
Public id_categoria As Short
Public desc_categoria As String
End Class

Y a su vez, Producto es una clase definida asi:

Public Class Producto

Public Producto_id As Long = 1

Friend Cantidad As Integer

Friend Precio As Single

Friend Descripcion As String

Friend Disponibilidad As Short

....Otros_metodos... bla bla bla.........
End Class

El Repeater lo tengo diseñado asi:

<asp:Repeater id="lstProductos" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<%# Container.DataItem("Descripcion")%>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>

Pero el error viene al ejecutar la linea Page.DataBind. La clase, la llamada a mis metodos, internamente la llamada a la base de datos funciona todo perfecto, incluso antes de llamar a Page.Databind el arrayList tiene el o los elementos que esperaba obtener. La pagina me manda el siguiente error:

No se encontró ningún miembro predeterminado para el tipo 'ListadoProductos'.

He cambiado el enlace a lo siguiente, pensando que era por como defini mi clase ListadoProductos

<%# DataBinder.Eval(Container.DataItem, "desc_categoria") %>

Pero me arroja el siguiente error

DataBinder.Eval: 'SisControl.ListadoProductos' no contiene una propiedad con el nombre desc_categoria

Alguien tiene alguna idea?. Hasta donde he averiguado, segun unos tutoriales de Microsoft, dice que si tengo un arrayList de tipo "Casa" (por ejemplo), entonces Container.DataItem sera de tipo Casa, es por eso que no entiendo bien que es lo que sucede con mi pagina. No se si las propiedades declaradas como Friend tenga algo que ver, las cambie a Public pero me sigue dando el mismo error.

Si alguien entiende lo que quiero decir, jejejeje... (ya se que esta enredado ^^U ) y si pueden ayudarme, les estare muy agradecido. Desde ya les aclaro que mi Clase Producto y el metodo funcionan perfectamente, el problema lo tengo al vincular al Repeater.

Un saludo y desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder