Entrada destacada

Me mudo...

He cambiado de servidor. Ahora puedes seguirme en: http://asanchezdiaz.com Todavía está en desarrollo, pero a partir de ahora se...

martes, 11 de septiembre de 2012

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 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.

No hay comentarios:

Publicar un comentario