Usuario
Buscador C# PagedList

Pregunta
-
Que tal amigo recurro nuevamente a ustedes para poder solucionar un problema que creo es simple pero no he podido dar con al solución.
1.- resulta que tengo un actions result de la siguiente manera.
public ActionResult searchRequerimiento(searchRequerimiento model) { var pageIndex = model.Page ?? 1; var itemPorPagina = 40; ViewBag.pageno = pageIndex; ViewBag.itemperpage = itemPorPagina; #region busqueda de requerimientos DataTable objDataTable = new DataTable("tblSongs"); objDataTable.Columns.Add("Ejercicio"); objDataTable.Columns.Add("NoLicitacion"); objDataTable.Columns.Add("Descripcion"); objDataTable.Columns.Add("TipoProcedimiento"); objDataTable.Columns.Add("ClavesRequeridas"); objDataTable.Columns.Add("PiezasRequeridas"); objDataTable.Columns.Add("MontoRequerido"); objDataTable.Columns.Add("ClavesAsignadas"); objDataTable.Columns.Add("PiezasAsignadas"); objDataTable.Columns.Add("MontoAsignado"); DataRow myDataRow; var partidaSelec=0; foreach (int item in model.itemPartidas) { if(item!=0) { partidaSelec = partidaSelec + item; } } var _filtrado = from t in db.MtoRequerimientos where (model.MtoProcedimientoId == 0 || t.MtoProcedimientoId == model.MtoProcedimientoId) && (model.Gpo == null || t.Gpo.Contains(model.Gpo)) && (model.Gen == null || t.Gen.Contains(model.Gen)) && (model.Esp == null || t.Esp.Contains(model.Esp)) && (model.Descripcion == null || t.Descripcion.Contains(model.Descripcion)) && (partidaSelec == 0 || model.itemPartidas.Contains(t.MtoRequerimientoId)) select t; Session["ResumenProcedimientos"] = objDataTable; model.result_MtoRequerimientos = _filtrado.ToPagedList(pageIndex, itemPorPagina)); return View("_LoadResultSearchRequerimiento", _filtrado.OrderBy(r=>r.MtoProcedimiento.NoLicitacion).ToPagedList(pageIndex,itemPorPagina)); #endregion }
bien y un modelview de la siguiente manera.
public class searchRequerimiento : MtoRequerimiento { [Display(Name = "Procedimiento")] public string NoLicitacion { get; set; } public int? Page { get; set; } public IPagedList<MtoProcedimiento> result_MtoRequerimientos { get; set; } public IEnumerable<MtoProcedimiento> ListProcedimientos { get; set; } public IEnumerable<MtoRequerimiento> ListPartidas { get; set; } public int[] itemLicitaciones { get; set; } public int[] itemPartidas { get; set; } }
en lo que quiero pedirles ayuda es como puedo pasar la consulta a la variable
public IPagedList<MtoProcedimiento> result_MtoRequerimientos { get; set; }
de mi model, ya que cuando quiero hacerlo de la siguiente manera
model.result_MtoRequerimientos = _filtrado.ToPagedList(pageIndex, itemPorPagina));
me muestra el siguiente error.
Severity Code Description Project File Line Suppression State Error CS0266 Cannot implicitly convert type 'PagedList.IPagedList<WebDBT.Models.MtoRequerimiento>' to 'PagedList.IPagedList<WebDBT.Models.MtoProcedimiento>'. An explicit conversion exists (are you missing a cast?) WebDBT C:\Users\Mirobiano\Source\Repos\WebDBT\WebDBT\Controllers\RequerimientosController.cs 103 Active
agradecería mucho su ayuda.
muchas gracias aun no logro poder realizar el concepto
Horacio Xochitemol Bautista
- Editado Xochitemol jueves, 6 de septiembre de 2018 21:56 complemento
Todas las respuestas
-
hola
Si analizas el mensaje vera que me nenciona las clases MtoRequerimiento y MtoProcedimiento
estas queriendo asignar tipos de datos diferentes
deberias cambiar la propiedad
public IPagedList<MtoProcedimiento> result_MtoRequerimientos { get; set; }
y usar MtoRequerimiento
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
que tal leandro muchas gracias, agradezco tu apoyo y te comento que en esa parte ya esta funcionando ahora en la paginación no se como recuperar el aray de los valores de la variable.
public int[] itemPartidas { get; set; }
lo estoy intentando así en el método search retorno un viewBag
ViewBag.Valores= String.Join(",", model.itemPartidas.Select(p => p.ToString()).ToArray());
depurando en ese ViewBag obtengo lo siguiente
ahora lo quiero recuperar en la paginación para ello ocupo el siguiente código en la view.
@Html.PagedListPager(Model.result_MtoRequerimientos, Page => Url.Action("Index", new RouteValueDictionary { { "Page",Page }, { "MtoProcedimientoId", Model.MtoProcedimientoId }, { "partidasLic",ViewBag.Valores }, { "Gpo", Model.Gpo }, { "Gen",Model.Gen}, { "Descripcion", Model.Descripcion }}), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions { UpdateTargetId = "ajax_main" }))
sin embargo en la barra de estado cuando trato de pasar a la pagina 2, me muestra lo siguiente.
que estoy haciendo mal que no puedo realizar la paginación, podrian echarme una mano.
muchas gracias
Horacio Xochitemol Bautista
-