Usuario
Ayuda con Maestro Detalle (Guardar)

Pregunta
-
Que tal amigos como indico en el encabezado necesito capturar un maestro detalle pero no se como diseñar el modelo.
podrían ayudarme para que las filas del cuadro en rojo sean evitables es decir texto donde pueda capturar información.
el modelo para el siguiente create es:
//[Notmapped] #region NewOfertaView public class NewOfertaView { #region Encabezado public Nullable<int> UsuarioId { get; set; } [Required(ErrorMessage = "Requerido")] [Range(1, double.MaxValue, ErrorMessage = "Seleccione {0}")] [Display(Name = "Procedimiento")] public int LicitacionId { get; set; } public int? MaestroRequerimientoId { get; set; } [Required(ErrorMessage = "Requerido")] [Range(1, double.MaxValue, ErrorMessage = "Seleccione {0}")] [Display(Name = "Licitante")] public int MaestroProveedorId { get; set; } [Range(1, double.MaxValue, ErrorMessage = "Debe ser >= {0}")] [Display(Name = "Partida")] public Nullable<int> Partida { get; set; } [Display(Name = "Gpo")] [Required(ErrorMessage = "Requerido")] public string Gpo { get; set; } [Display(Name = "Gen")] [Required(ErrorMessage = "Requerido")] public string Gen { get; set; } [Display(Name = "Esp")] [Required(ErrorMessage = "Requerido")] public string Esp { get; set; } [Display(Name = "Dif")] public string Dif { get; set; } [Display(Name = "Var")] public string Var { get; set; } [Required(ErrorMessage = "Requerido")] [Range(0.00, double.MaxValue, ErrorMessage = "You must enter values in {0} between {1} ")] [Display(Name = "Precio")] [DisplayFormat(DataFormatString = "{0:N2}", ApplyFormatInEditMode = true)] public double PrecioOfertado { get; set; } [Required(ErrorMessage = "Requerido")] [Range(1, double.MaxValue, ErrorMessage = "{0} debe ser > 0")] [Display(Name = "Maximo Ofertado")] [DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)] public double MaximoOfertado { get; set; } [Required(ErrorMessage = "Requerido")] [Range(1, double.MaxValue, ErrorMessage = "{0} debe ser > 0")] [Display(Name = "Minimo Ofertado")] [DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)] public double MinimoOfertado { get; set; } [Required(ErrorMessage = "Requerido")] [Display(Name = "Descuento")] [DisplayFormat(DataFormatString = "{0:N2}", ApplyFormatInEditMode = true)] [Range(0.00, 99.99, ErrorMessage = "de ser entre {1} y {2}")] public double Descuento { get; set; } #endregion #region Cuerpo public List<DetalleOfertaTemp> DetalleOfertasTemp { get; set; } #endregion } #endregion
El modelo del que necesito hacer 10 elementos para capturar información del detalle es:
public class DetalleOfertaTemp { [Key] public int DetalleOfertaTempId { get; set; } //public int MaestroOferta_MaestroOfertaId { get; set; } public int UsuarioId { get; set; } public string Clase { get; set; } [Display(Name="Oficio Exime")] [Required(ErrorMessage = "{0} es requerido")] public string OficioExime { get; set; } [Display(Name = "Tramite Inclusión")] [Required(ErrorMessage = "{0} es requerido")] public string TramiteInclusion { get; set; } [Display(Name = "Marca /Den. Distintiva")] [Required(ErrorMessage = "{0} es requerido")] public string Marca { get; set; } [Display(Name = " Núm. Registro Sanitario")] [Required(ErrorMessage = "{0} es requerido")] public string RegistroSanitario { get; set; } [Display(Name = "Titular Registro Sanitario")] [Required(ErrorMessage = "{0} es requerido")] public string TitularRegistro { get; set; } [Display(Name = "Rfc Titular Registro")] [Required(ErrorMessage = "{0} es requerido")] public string RfcTitular { get; set; } [Display(Name = "Procedencia")] [Required(ErrorMessage = "{0} es requerido")] public string Origen { get; set; } [Display(Name = "Fabricante")] [Required(ErrorMessage = "{0} es requerido")] public string Fabricante { get; set; } [Display(Name = "RFC Fabricante")] [Required(ErrorMessage = "{0} es requerido")] public string RfcFabricante { get; set; } // public virtual MaestroOferta MOFERMaestroOfertas { get; set; } }
Lo he intentado de la siguiente manera, pero únicamente eh logrado mostrar los registros.
public ActionResult Create() { var UsuarioId = Utilities.ObtenerUsuario(User.Identity.Name); try { ViewBag.LicitacionId = new SelectList(Utilities.ObtenerLicitaciones() .Where(l => l.Activo), "LicitacionId", "NoLicitacion"); ViewBag.MaestroProveedorID = new SelectList(Utilities.ListarProveedores() .OrderBy(P => P.RazonSocial), "MaestroProveedorId", "RazonSocial"); List<DetalleOfertaTemp> DetalleOfertasTemp = new List<DetalleOfertaTemp>(); for (int i = 0; i < 10; i++) { DetalleOfertaTemp Lista = new DetalleOfertaTemp(); Lista.Clase = "Clase"; Lista.OficioExime = "Oficio Exime"; Lista.TramiteInclusion = "Tramite Inclusion"; Lista.Marca = "Marca"; Lista.RegistroSanitario = "Registro SAnitario"; Lista.TitularRegistro = "Titular del Registro"; Lista.RfcTitular = "RFC Titular"; Lista.Origen = "Procedencia"; Lista.Fabricante = "Fabricante"; Lista.RfcFabricante = "RFC Fabricante"; DetalleOfertasTemp.Add(Lista); } var view = new NewOfertaView { DetalleOfertasTemp = DetalleOfertasTemp.ToList(), // .Where(dot => dot.UsuarioId == UsuarioId).ToList(), }; return View(view); } catch (Exception Ex) { ViewBag.LicitacionId = new SelectList(Utilities.ObtenerLicitaciones() .Where(l => l.Activo), "LicitacionId", "NoLicitacion"); ViewBag.MaestroProveedorID = new SelectList(Utilities.ListarProveedores() .OrderBy(P => P.MaestroProveedorId), "MaestroProveedorId", "RazonSocial"); ModelState.AddModelError(string.Empty, Ex.Message); return View(); // return View(view); } }
Agradeceré su ayuda.
Horacio Xochitemol Bautista
Todas las respuestas
-
hola
>>las filas del cuadro en rojo sean evitables es decir texto donde pueda capturar información
Pero tienes que definir textbox en el template de la tabla para que estos viajen en el post cuando realices el submit
asi como lo tienes actualmente los datos del grid no se envian al action en el controller, tienes que cambiar la view
En el grid veo que tienes un boton de edicion, eso quiere decir que redireccionas a otra pagina para editar la entidad, no lo haces sobre el propio grid
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
>>podrías mas o menos darme una idea de como implementarlo
pero como quieres implementarlo ? la idea es abrir alguna ventana ya sea popup para editar la entidad seleccionada o editar directo sobre la row poniendala en modo edicion
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola Leandro la idea que tengo la vis en una web del amigo Juan Carlos Arcila diaz. y es mas o menos así
.
Perola verdad no encuentro la forma de poder realizarlo, lo único que es todos los campos serian @Html.TextboxFor.
gracias por tu apoyo
Horacio Xochitemol Bautista