Principales respuestas
Llenar gridview en 4 capas

Pregunta
-
Buenas estimados, me gustaría poder llenar mi gridview dependiendo de muchas condiciones:
1: que esté logeado
2: ver si es administrador,asistente o empleado
Lo que quiero mostrar en el gridivew son enlaces de pdf para descargar o verlos online.
en mi CAPAENTIDAD creé una clase llamada "EntidadDocumento"
public class EntidadDocumento
{
public string arch_nombre { get; set; }
public string arch_descripcion { get; set; }
public int id_usuario { get; set; }
public int id_usuario_rol_descrip { get; set; }
}en mi CAPADATO creé una clase llamada "DatoUsuario"
public DataTable ListarClientes(EntidadDocumento EDocumento)
{
string conex = ConfigurationManager.ConnectionStrings["CadenaConexion"].ToString();
SqlConnection cnn = new SqlConnection(conex);
SqlDataAdapter da = new SqlDataAdapter("grdpdf", cnn);
DataTable dt = new DataTable();
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddWithValue("@idusu", EDocumento.id_usuario);
da.SelectCommand.Parameters.AddWithValue("@idusurol", EDocumento.id_usuario_rol_descrip);
da.Fill(dt);
return dt;
}En mi CAPANEGOCIO cree una clase llamda NegocioUsuario
public DataTable ListarClientes(EntidadDocumento EDocumento)
{
return DUsuario.ListarClientes(EDocumento);
}y en mi CAPAVISTA mando los siguientes datos:
EntidadDocumento EDocumento = new EntidadDocumento();
NegocioUsuario NUsuario = new NegocioUsuario();
protected void Page_Load(object sender, EventArgs e)
{
if
(Session["usuario"] != null)
{
Label1.Text = "Bienvenido " + Session["usuario"];
string nivel = Session["usuario"].ToString();
if(nivel == "Administrador")
{
EDocumento.id_usuario = 1;
EDocumento.id_usuario_rol_descrip = 1;
DataTable dt = NUsuario.ListarClientes(EDocumento);
if (dt.Rows.Count != 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
else
{
Response.Redirect("~/Acceso.aspx");
}
}Pero no me llena el gridview, espero puedan ayudarme, saludos cordiales.
Respuestas
-
Hola,bueno lo primero sería sugerirte que revises que en efecto este datatable , este trayendo datos,poniendo un punto de interupcion
DataTable dt = NUsuario.ListarClientes(EDocumento);
por otro lado el evento load se va a ejecutar , no solo la primera vez que cargas la página sino que es el evento que se dispara siempre que hay una devolución de datos por parte del servidor , como por ejemplo si haz hecho click en algún boton del formulario, o en algún evento de la grilla
por lo que si solo se quiere que se ejecute el codigo la primera ves que carga la página se hace uso de la propiedad IsPostBack
algo como
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { 'aqui operaciones que solo se requieren una vez y al cargar la pagina } }
Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Saludos. Lima-Perú.
- Editado Augusto1982 miércoles, 26 de abril de 2017 20:49
- Propuesto como respuesta Joyce_ACModerator miércoles, 26 de abril de 2017 20:57
- Marcado como respuesta Joyce_ACModerator miércoles, 3 de mayo de 2017 14:36
Todas las respuestas
-
Hola,bueno lo primero sería sugerirte que revises que en efecto este datatable , este trayendo datos,poniendo un punto de interupcion
DataTable dt = NUsuario.ListarClientes(EDocumento);
por otro lado el evento load se va a ejecutar , no solo la primera vez que cargas la página sino que es el evento que se dispara siempre que hay una devolución de datos por parte del servidor , como por ejemplo si haz hecho click en algún boton del formulario, o en algún evento de la grilla
por lo que si solo se quiere que se ejecute el codigo la primera ves que carga la página se hace uso de la propiedad IsPostBack
algo como
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { 'aqui operaciones que solo se requieren una vez y al cargar la pagina } }
Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Saludos. Lima-Perú.
- Editado Augusto1982 miércoles, 26 de abril de 2017 20:49
- Propuesto como respuesta Joyce_ACModerator miércoles, 26 de abril de 2017 20:57
- Marcado como respuesta Joyce_ACModerator miércoles, 3 de mayo de 2017 14:36
-
hola
Si pones un breakpoint en el codigo, puede validar que pasa por el if que evalua si el Session["usuario"] es distinto de null ?
Puedes inspeccionar el datatable para ver si este tiene registros
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina