Foros del Web » Programando para Internet » ASPX (.net) »

No se muestra GridView

Estas en el tema de No se muestra GridView en el foro de ASPX (.net) en Foros del Web. Hola, estoy tratando de mostrar un gridview, pero no consigo que se me muestre por pantalla. Por un lado tengo IncidenceList.aspx @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ASP: ...
  #1 (permalink)  
Antiguo 20/01/2016, 11:53
 
Fecha de Ingreso: febrero-2014
Mensajes: 13
Antigüedad: 10 años, 2 meses
Puntos: 0
No se muestra GridView

Hola, estoy tratando de mostrar un gridview, pero no consigo que se me muestre por pantalla.

Por un lado tengo IncidenceList.aspx

Código ASP:
Ver original
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="IncidenceList.aspx.cs" Inherits="Incidences.WEB.Admin.IncidenceList" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
  3.     <link href="<%: ResolveUrl("~/Content/DataTables/css/jquery.dataTables.css") %>" rel="stylesheet" />
  4.     <script src="<%: ResolveUrl("~/Scripts/DataTables/jquery.dataTables.js") %>"></script>
  5.     <script type="text/javascript">
  6.         $(document).ready(function () {
  7.             $('#MainContent_GridView1').DataTable(
  8.                 {
  9.                     "oLanguage": { "sUrl": "//cdn.datatables.net/plug-ins/1.10.7/i18n/Spanish.json" },
  10.                     "columnDefs": [
  11.                         {
  12.                             "render": function (data, type, row) {
  13.                                 return "<a href='EditIncidence?incidenceId=" + data + "'>" + data + "</a>";
  14.                             },
  15.                             "targets":0
  16.                         },
  17.                          { "title": "Equipo", "targets": 1 },
  18.                          { "title": "Tipo de incidencia", "targets": 2 },
  19.                          { "title": "Mensage", "targets": 3 },
  20.                          { "title": "listado", "targets": 4 },
  21.  
  22.  
  23.                     ]
  24.                 });
  25.         });
  26.         </script>
  27.     <div style =" margin-top:10px;margin-bottom:10px">
  28.        <asp:Button CssClass="btn btn-default" ID="cmdNew" runat="server" Text="Nueva incidencia" OnClick="cmdNew_Click" />
  29.     </div>
  30.     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
  31.         <Columns>
  32.             <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id"></asp:BoundField>
  33.             <asp:BoundField DataField="Equipment" HeaderText="Equipment" SortExpression="Equipment"></asp:BoundField>
  34.             <asp:BoundField DataField="IncidenceType" HeaderText="IncidenceType" SortExpression="IncidenceType"></asp:BoundField>
  35.             <asp:BoundField DataField="Message" HeaderText="Message" SortExpression="Message"></asp:BoundField>
  36.             <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status"></asp:BoundField>
  37.         </Columns>
  38.     </asp:GridView>
  39.  
  40.     <asp:ObjectDataSource runat="server" ID="ObjectDataSource1" SelectMethod="GetData" TypeName="Incidences.WEB.Admin.IncidenceList"></asp:ObjectDataSource>
  41. </asp:Content>

Por otro lado el aspx.cs

Código ASP:
Ver original
  1. using Incidences.Application;
  2. using Incidences.DAL;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using Microsoft.AspNet.Identity;
  10. using Incidences.WEB.Models;
  11.  
  12. namespace Incidences.WEB.Admin
  13. {
  14.     public partial class IncidenceList : System.Web.UI.Page
  15.     {
  16.         protected void Page_Load(object sender, EventArgs e)
  17.         {
  18.  
  19.             GridView1.UseAccessibleHeader = true;
  20.             if (GridView1.HeaderRow != null)
  21.                 GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
  22.         }
  23.  
  24.         /// <summary>
  25.         /// Metodo que retorna los datos de lasincidencias para el listado de usuario
  26.         /// </summary>
  27.         /// <returns>Lista de incidencia del usuario</returns>
  28.  
  29.         public List<IncidenceListAdmin>GetData()
  30.         {
  31.             ApplicationDbContext context = new ApplicationDbContext();
  32.             IncidenceManager incidenceManager = new IncidenceManager(context);
  33.             MessageManager messageManager = new MessageManager(context);
  34.  
  35.             var incidences = incidenceManager.GetByUserId(User.Identity.GetUserId()).ToList()
  36.                                              .Select(i => new IncidenceListAdmin()
  37.                                              {
  38.                                           Id = i.Id,
  39.                                           Equipment = i.Equipment,
  40.                                           Status = i.Status.ToString(),
  41.                                           IncidenceType = i.IncidenceType.ToString(),
  42.                                           Message = messageManager.GetFirstMessage(i.Id).Text
  43.                                              });
  44.             return incidences.ToList();
  45.         }
  46.  
  47.                 protected void cmdNew_Click(object sender, EventArgs e)
  48.         {
  49.             Response.Redirect("CreateIncidence");
  50.         }
  51.  
  52.  
  53.  
  54.         }
  55.    
  56. }

Este seria en el rol administrador, el caso es que tengo el mismo código en el rol administrador y ahi si que me muestra sin problemas.

Muchas gracias.
  #2 (permalink)  
Antiguo 08/03/2016, 18:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: No se muestra GridView

Lo que pasa es que el control gridview no agregar automaticamente los tags thead que necesita jquery.datatable, prueba hacer lo siguiente:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         $(document).ready(function () {
  3.  
  4. ("#MainContent_GridView1").prepend( $("<thead></thead>").append( $(this).find("tr:first") ) ).dataTable();
  5.  
  6.             $('#MainContent_GridView1').DataTable(
  7.                 {
  8.                     "oLanguage": { "sUrl": "//cdn.datatables.net/plug-ins/1.10.7/i18n/Spanish.json" },
  9.                     "columnDefs": [
  10.                         {
  11.                             "render": function (data, type, row) {
  12.                                 return "<a href='EditIncidence?incidenceId=" + data + "'>" + data + "</a>";
  13.                             },
  14.                             "targets":0
  15.                         },
  16.                          { "title": "Equipo", "targets": 1 },
  17.                          { "title": "Tipo de incidencia", "targets": 2 },
  18.                          { "title": "Mensage", "targets": 3 },
  19.                          { "title": "listado", "targets": 4 },
  20.  
  21.  
  22.                     ]
  23.                 });
  24.         });
  25.         </script>

La otra forma es indicarle por código que el gridview agregue los tags thead y tfoot mediante el evento OnPreRender="GridView1_PreRender"

Cita:
protected void GridView1_PreRender(object sender, EventArgs e)
{
GridView1.DataSource = Sample.GetData();
GridView1.DataBind();

if (GridView1.Rows.Count > 0)
{
GridView1.UseAccessibleHeader = true;
GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
GridView1.FooterRow.TableSection = TableRowSection.TableFooter;
}

}
salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net

Etiquetas: asp, gridview, muestra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.