Paginar conData Pager
Publicado por Juan Carlos (42 intervenciones) el 08/07/2011 17:09:55
Hola que tal,
Tengo una listview que pagino con el control datapager, en el evento OnPagerCommand tengo algo asi:
switch (e.CommandName)
{
case "Next":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if ((e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows) < e.Item.Pager.TotalRowCount)
{
e.NewStartRowIndex = e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "Previous":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if (e.Item.Pager.StartRowIndex > 0)
{
e.NewStartRowIndex = e.Item.Pager.StartRowIndex - e.Item.Pager.MaximumRows;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "Last":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if ((e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows) < e.Item.Pager.TotalRowCount)
{
e.NewStartRowIndex = e.Item.Pager.MaximumRows * (int)(e.Item.Pager.TotalRowCount / e.Item.Pager.MaximumRows);
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "First":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if (e.Item.Pager.StartRowIndex > 0)
{
e.NewStartRowIndex = 0;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
Funciona bien, pero si porejemplo el ListView Tiene 13 registros y en la propiedad Pager Size teng = 10, la primera página me muestra 10 registros y en la segunda 3.
Cómo puedo hacerle para que Siempre todas las paginas (en este caso dos paginas) muestren 10 registros??? Obviamente en la segunada pagina habría registros repetidos (Los ultimos 7 registros de la pagina 1, seran también los primeros 7 de la segunda pagina) , esto lo queiro hacer para que el listview no se vea que va cambiando de tamaño verticalmente cuando no se completan 10 registros en la pagina.
Gracias
Tengo una listview que pagino con el control datapager, en el evento OnPagerCommand tengo algo asi:
switch (e.CommandName)
{
case "Next":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if ((e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows) < e.Item.Pager.TotalRowCount)
{
e.NewStartRowIndex = e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "Previous":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if (e.Item.Pager.StartRowIndex > 0)
{
e.NewStartRowIndex = e.Item.Pager.StartRowIndex - e.Item.Pager.MaximumRows;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "Last":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if ((e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows) < e.Item.Pager.TotalRowCount)
{
e.NewStartRowIndex = e.Item.Pager.MaximumRows * (int)(e.Item.Pager.TotalRowCount / e.Item.Pager.MaximumRows);
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
case "First":
if (ListView1.EditItem == null && ListView1.InsertItem == null)
{
if (e.Item.Pager.StartRowIndex > 0)
{
e.NewStartRowIndex = 0;
e.NewMaximumRows = e.Item.Pager.MaximumRows;
}
}
break;
Funciona bien, pero si porejemplo el ListView Tiene 13 registros y en la propiedad Pager Size teng = 10, la primera página me muestra 10 registros y en la segunda 3.
Cómo puedo hacerle para que Siempre todas las paginas (en este caso dos paginas) muestren 10 registros??? Obviamente en la segunada pagina habría registros repetidos (Los ultimos 7 registros de la pagina 1, seran también los primeros 7 de la segunda pagina) , esto lo queiro hacer para que el listview no se vea que va cambiando de tamaño verticalmente cuando no se completan 10 registros en la pagina.
Gracias
Valora esta pregunta
0