miércoles, 16 de septiembre de 2015

Clases Fuertemente Tipados en una ListView para un WebPart en SharePoint

El control ListView nos permite desplegar colecciones de Clases definidas en codigo (Ej.:List<MiEntidad> ).  

Normalmente utlizamos el metodo Eval(“Atributo de la Clase”) para desplegar la información que enlazamos en el control con el evento miListView.DataBind().

Una mejor forma es utilizando el Atributo ItemType del control ListView.  De la siguiente forma:

<asp:ListView ID="uiListado" runat="server" ItemPlaceholderID="DetalleListado"
          OnPagePropertiesChanged="uiListado_PagePropertiesChanged"
          ItemType="Infoware.Comun.Dominio.Entidad.MiClase">

En el detalle lo definimos de la siguiente forma:

<ItemTemplate>
      <tr class="">
          <td id="Td2" runat="server"><%#: Item.Perfil %></td>
          <td id="Td3" runat="server"><%#: Item.Plazas %></td>
          <td id="Td4" runat="server"><%#: Item.Seccion %></td>
          <td id="Td10" runat="server"><%#: Item.Departamento %></td>
          <td id="Td7" runat="server"><%#: Item.PlazasTotal %></td>
          <td id="Td9" runat="server"> Del: <%#: Item.InscripcionesFechaInicial.HasValue? Item.InscripcionesFechaInicial.Value.ToString("dd/MM/yyyy"):"" %> 
              Al: <%#: Item.InscripscionesFechaFin.HasValue?Item.InscripscionesFechaFin.Value.ToString("dd/MM/yyyy"):"" %></td>
          <td id="Td8" runat="server"><%#: Item.InscripscionesFechaFin.HasValue? Item.InscripscionesFechaFin.Value.ToString("dd/MM/yyyy"):"" %></td>
           <td id="Td1" runat="server"><%#: Item.ExamenLugar %></td>
          <td id="Td5" runat="server"><%#: Item.TipoConvocatoria %></td>
        
          <td class="clasebotones">
              <asp:LinkButton ID="uiVer" runat="server"  ToolTip="Ver"
                  OnClick="evento_ver" CommandArgument='<%#: Item.Id %>' ValidationGroup='<%#: Item.CircularNo %>'
                  OnClientClick="javascript:setFormSubmitToFalse()">Circular PDF</asp:LinkButton>
           
              <asp:LinkButton ID="LinkButton3" runat="server"  ToolTip="Ver"
                  OnClick="evento_Recrear" CommandArgument='<%#: Item.Id %>' ValidationGroup='<%#: Item.CircularNo %>'
                  OnClientClick="javascript:setFormSubmitToFalse()">Recrear Circular PDF</asp:LinkButton>
          </td>
      </tr>
  </ItemTemplate>

Como podemos observar utilizamos la clase Item.NombreAtributoClaseDefiniaEnItemType.

image

Uselo es práctico y evita errores de escritura.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

No hay comentarios.: