Ir al contenido principal

Columnas seleccionadas en tabla MVC 5

En un desarrollo se me ha presentado un problema, necesito construir una tabla y seleccionar las filas, la solución que implementé fue muy sencilla


1. Modelo, en el modelo tengo un objeto que representa las filas de la tabla en ella se pueden añadir múltiples datos y agregar el elemento "selected" el cual es de tipo "bool" e indica si el elemento esta seleccionado o no:

  public class Row
    {
        public string dato1{ get; set; }
        public bool selected { get; set; }
    }


2. Controlador,  acá tengo las acciones "Get" y "Post", en la acción "Get", creo una lista de objetos fila de modo que en la vista se pueda mostrar el objeto y no este vacío, acá puedo decidir si por default estará seleccionada la fila o no:


//Get
public ActionResult Index()
        {
                 List<Row> lslineas= new List<Row>();
                   Row linea = new Row{
                             dato1 = "",
                             selected = true
                       };
               
                 lslineas.Add(linea);
               
                return View(lslineas);
         }


en la acción "Post" tomo lista de objetos "Row" de la vista y se recorre dicha lista para hacer algo cuando el elemento "selected" sea verdadero:

[HttpPost]
        public ActionResult Index(List<Row> lineas) {

         foreach( x in lineas){
                  if(x.selected){
                      //accion
                   }
          }

}


3. Vista, en la vista primero indico que el modelo que se utiliza para esta vista es una lista de objetos Row, en el formulario creo la tabla que se utilizará, utilizado un ciclo para recorrer la lista de objetos Row y el "boton" de "submit" que ejecutará la accion

//agregar el modelo como una lista de objetos Row
@model List<Proyecto.Row>

 @using (Html.BeginForm("Index", FormMethod.Post))
    {
        <table>
            <tr>
                <th>
                     Titulo Columna Dato1
                </th>

                <th>
                     Titulo Columna Seleccion
                </th>
           </tr>
         
                  @for (int i = 0; i < Model.Count(); i++)
                {
                   <tr>
                          <td>
                               @Html.TextBox("Row[" + @i + "].dato1",
                                          Model[i].dato1,
                                          new { @readonly = "readonly", @class= "form-control no-border" })
                          </td>
                          <td>
                                @Html.CheckBox("Row[" + @i + "].selected", Model[i].selected)
                          </td>
                   </tr>
                 }
         

         </table>
             <input type="submit"  value="Eliminar" />

     }

Comentarios

Entradas populares de este blog

DISEÑO AL NIVEL DE COMPONENTES

El diseño a nivel de componentes se presenta a menudo despues que se ha terminado la primera iteracion del diseño arquitectonico. y  el objetivo de esta fase es traducir el diseño en software operaciona. El diseño a nivel de componentes define las estructuras de datos, los algoritmos, las caracteristicas de la interfaz  y los mecanismos de comunicacion asignados a cada componente de software. esta fase permite revisar si los detalles de diseño son correctos y consistentes con las representaciones iniciales de diseño ¿QUE ES UN COMPONENTE? Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y expone un conjunto de interfaces. desde el punto de vista orientado a objetos un componente es un conjunto de clases ques se interrelacionan entre si. en el contexto convencional de ingenieria de software  un componente es un elemento funcional que incorpora  la logica del procesamiento y

ESTRATEGIAS DE PRUEBAS DE SOFTWARE

La estrategia de pruebas de software proporciona un mapa que describe los pasos que se daran como parte de la prueba indica cuando se planea y cuando se daran dichos pasos ademas cuanto tiempo, esfuerzo y recursos consumiran. un software se prueba para descubrir los errores cometidos, si se realiza sin ningun plan seguramente se desperdiciara tiempo, se dedicara un esfuerzo innecesario y lo que es peor puede que no se detecten los errores. Las pruebas se deben planificar con anticipacion y realizarlas de manera sistematica por lo que es importante tener una plantilla existen diferentes y en general tienen los siguientes pasos. 1. Revisiones tecnicas formales y efectivas 2. Se inicia a nivel de componentes y se trabaja hacia afuera hacia la integracion del sistema 3. Diferentes tecnicas en diferentes momentos 4. las pruebas las dirige el desarrollador 5. la prueba y la depuracion son actividades diferentes, pero la segunda debe incluirse en cualquier estrategia de pruebas. l

AGE OF EMPIRES ERROR INICIALIZAR DIRECT 3D

Instale age of empires 3 pero no me corria me salia un mensaje de error al inicializar posibles causas direct 3d y otras que no me acuerdo la solucion luego de buscar: abrir el archivo mis documentos\my games\Age of empires 3\users\NewProfile.xml en block de notas setting name="optiongrfxres">etting Name="optiongrfxres">1280 x 720 colocar los parametros en la configuarcion que tiene el ordenador en mi caso es wide screen 1280 X 720 Setting Name="optionrefreshrate">75 esta configuracion se mira en inicio > panel de control > apariencia y temas >pantalla lengeta configuarcion > boton opciones avanzadas lengueta adaptador > boton listar modos alli colocas el modo que queres y lo pones en el archivo newProfile.xml