2010-12-13 12 views
6

Actualmente tengo un control de repetidor y dentro de la plantilla de elemento tengo un control de usuario. Este control de usuario se representa correctamente, pero estoy tratando de asignar un elemento de datos a una propiedad en el control del repetidor.Asignación dinámica de una propiedad en un control de usuario en un control de repetidor ASP.NET

<asp:Repeater ID="Repeater1" DataSourceID="EntityDataSource" runat="server"> 
    <ItemTemplate> 
    <uc1:Request ID="Request1" runat="server" RequestId='<%# Eval("RequestId") %>' /> 
</ItemTemplate> 

RequestID es sólo un Int32. Simplemente no lo asigna.

Puedo poner la evaluación fuera del control de usuario solo en la plantilla del elemento y muestra correctamente la identificación correcta.

Si elimino la evaluación completa y solo escribo un número, entonces funciona bien.

Cualquier ayuda apreciada.

[ACTUALIZACIÓN]: Edición Resuelto

que estaba usando un EntityDataSource y esto binded automáticamente al repetidor. Imprimió toda la información de la base de datos en la pantalla sin ningún código subyacente. Pero cuando introduzco el código detrás de Repeater1.DataBind(); luego comenzó a funcionar.

No sé por qué, pero bueno, está resuelto. Ahora pasa con éxito el valor. Me imagino que tiene algo que ver con el ciclo de vida de la página.

+0

Nada funciona todavía. El RequestId simplemente no se establece cuando utilizo Eval. Cuando hago <% # Eval ("RequestId")%> justo encima del control de usuario, solo en el espacio abierto se imprime perfectamente en la pantalla. Si codifico el número, p. RequestId = "2" funciona bien. Pero simplemente no funciona cuando se hace como se indicó anteriormente. –

+0

Tiene un error tipográfico en su código. ¿No debería haber un cierre 'justo después de%>? – Skorpioh

Respuesta

4

Si sólo enlaza con la colección de repetidor int, es necesario utilizar este:

<uc1:Request ID="Request1" runat="server" RequestId='<%# Container.DataItem %>' /> 

y no se olvide de llamar a DataBind() para el repetidor o para la página donde hay un control del repetidor.

2

¿Echas de menos un ' al final?

cambio siguiente:

RequestId='<%# Eval("RequestId") %> /> 

a

RequestId='<%# Eval("RequestId") %>' /> 
+0

solo un error al copiar mi código, tiene ambas citas –

0

se puede implementar esta usando evento ItemDataBound de control Repeater, de manera que se puede establecer la propiedad dinámica para el control.

Cuestiones relacionadas