ASP.NET - se me desaparece el gridview

   
Vista:

se me desaparece el gridview

Publicado por arcenett (45 intervenciones) el 05/12/2007 17:19:12
hola foreros, mi problemas es el siguiente:

tengo 2 calendar(calendar 1 y calendar2), un botón buscar y un gridview que se pagina sin problemas.

lo que pasa es que yo selecciono los dos calendar que se supone son fecha desde y el otro fecha hasta,
al dar click en mi boton buscar aparece mi gridview con los registros que encontro, si son mas 25 empieza el paginado de 25 en 25 , hasta aqui todo funciona ok el verdadero problema es que si son mas de 25 por ejemplo 100 abajo me aparecen las paginas enumeradas del 1 al 4 , y al precionar cualkiera de estos numeros se desaparece el gridview... por favor si sabe el porque pasa esto me lo dice a continuacion les dejo mi codigo para que le hechen un ojo:

public partial class Compras_a_Proveedores : System.Web.UI.Page
{

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection cnn;
String sentencia1, dropp, dropp2;

GridView1.DataBind();

cnn = new SqlConnection();
cnn.ConnectionString = "Data Source=LENGA;Initial Catalog=xxxxxxx;User ID=xxxxxxx;Password=xxxxxxx";

SqlCommand cmd = new SqlCommand();

SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@fechainicio",SqlDbType.VarChar);
param[0].Value = Calendar1.SelectedDate.ToString();

param[1] = new SqlParameter("@fechatermino", SqlDbType.VarChar);
param[1].Value = Calendar2.SelectedDate.ToString();

cmd.CommandTimeout = 5000;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "spcompraproveedores";
cmd.Connection = cnn;
cmd.Parameters.AddRange(param);

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);

GridView1.DataSource = ds;
GridView1.AllowPaging = true;
GridView1.PageSize = 25;
GridView1.EnableSortingAndPagingCallbacks = true;

GridView1.DataBind();
}

}

de antemano gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:se me desaparece el gridview

Publicado por Javier Santamaria (312 intervenciones) el 06/12/2007 11:44:34
Porque no pruebas a crear un stored procedure que coja los valores de las fechas como parametros. Ese stored procedure lo puedes utilizar como fuente de un sqldatasource y el sqldatasource como fuente de datos del gridview. De esa forma a mi no me da ningun problema.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se me desaparece el gridview

Publicado por arcenett (45 intervenciones) el 06/12/2007 13:37:04
mmmmm...no entiendo muy bien lo que me quieres decir.....si puede ser con peras y manzanas...jejej es que soy medio nuevito en lo que programando en .net se refiere
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se me desaparece el gridview

Publicado por arcenett (45 intervenciones) el 06/12/2007 17:22:54
hola a todos , bueno gracias por tu ayuda javier.
sabes estube viendo eso que me dijiste pero me resulto mas facil hacer esto:

protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataBind();

SqlConnection cnn;
String sentencia1, dropp, dropp2;

GridView1.DataBind();

cnn = new SqlConnection();
cnn.ConnectionString = "Data Source=xxxxxx;Initial Catalog=xxxxx;User ID=xxxxxxx;Password=xxxxxxxxx";

try
{

SqlCommand cmd = new SqlCommand();

SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@fechainicio", SqlDbType.VarChar);
param[0].Value = Calendar1.SelectedDate.ToString();

param[1] = new SqlParameter("@fechatermino", SqlDbType.VarChar);
param[1].Value = Calendar2.SelectedDate.ToString();

cmd.CommandTimeout = 5000;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "spcompraproveedores";
cmd.Connection = cnn;
cmd.Parameters.AddRange(param);

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);

GridView1.DataSource = ds;
GridView1.AllowPaging = true;
GridView1.PageSize = 25;
GridView1.EnableSortingAndPagingCallbacks = true;

GridView1.DataBind();
}
catch (SqlException ex3)
{ }

}

en page load tambien deje el codigo y ahora todo funciona perfecto, bueno hasta el momento.....jejeje..cualquier cosa les dejo un post...jejej
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se me desaparece el gridview

Publicado por @vm (196 intervenciones) el 12/12/2007 02:27:18
Muy válido la solución de tu problema, pero en realidad lo que estaba pasando es que la primera vez cargaba correctamente los primeros 25 registros en el GridView, pero cuando le das a una pagina diferente debes volver a mandar la instruccion Bind para q sepa de que origen de datos debe tomar los siguientes 25 registros o los correspondientes a la página seleccionada, como no era así no cargaba nada.

Para hacer lo que te digo usa el evento PageIndexChanged y ya todo tranquis.

Ejemplo:
private void GridView1_PageIndexChanged(...)
{
//Ojo no es necesario volver a cargar todo el GridView, solo con el DataBind es suficiente, porque ya esta hecho el origen de datos, solo digamos q lo vuelve a llamar.

GridView1.DataBind();
}

Como ahora pusiste el código para que se cargue tu GridView cada que refresca la página pues funciona.

Si vas a usar la opción que te menciono quita el código del PageLoad, si estas satisfecho con tu solución asi dejalo, saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:se me desaparece el gridview

Publicado por arcenett (45 intervenciones) el 27/12/2007 17:03:36
hola y gracias por la respuesta, y sep me parece mas cómoda tu solución asi que la implementare en cuando pueda... gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar