ASánchezDíaz

Autoaprendiendo .NET y otras cosas


Problema con DataList y UpdatePanel en ASP.NET

Problema con DataList y UpdatePanel en ASP.NET

Error

CS1061: ‘System.Web.UI.Control’ does not contain a definition for ‘DataItem’ and no extension method ‘DataItem’ accepting a first argument of type ‘System.Web.UI.Control’ could be found (are you missing a using directive or an assembly reference?)

Desarrollo

Me encontré este mensaje de error el otro día, usando un UpdatePanel dentro de un control DataList.

Normalmente para cargar los datos en el DataList, uso:

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

donde “Valor” es la propiedad de la clase que quiero introducir. Asumo que tenéis conocimiento de los controles DataList y UpdatePanel.

Pues bien, el error se producía al usar un control DataList dentro de un UpdatePanel:

<asp:UpdatePanel ID="panel"runat="server">
	<ContentTemplate>
		<asp:Button ID="btnResponder" runat="server" Text="Enviar" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Id")%>'/>
	</ContentTemplate>
</asp:UpdatePanel>

Marco en negrita y en rojo el origen del error.

Solución

Usar Eval() del siguiente modo:

<asp:UpdatePanel ID="panel"runat="server">
	<ContentTemplate>
		<asp:Button ID="btnResponder" runat="server" Text="Enviar" CommandArgument='<%#Eval("Id")%> '/>
	</ContentTemplate>
</asp:UpdatePanel>

Esto resuelve el error.

Espero que pueda ayudar a alguien.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *