Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2011, 14:48
El_fenix
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Generar checkbox a un GridView generado por codigo

Hola a todos.

Para los que se interesen o tengan un problema parecido encontre una solucion, bastante arcaica, pero una solucion.

Lo que hice fue generar dos tablas una con las filas principales mas una secundaria y otra que recibe los datos y se inserta en la fila secundaria.

Aqui va el codigo.
Código C:
Ver original
  1. for (r = 0; r < num_filas; r++)
  2.             {
  3.                 i = f + 1; // esta variable se utiliza para crear la celda invisible
  4.  
  5.                 //Creacion de la Fila Principal
  6.                 Fila = new TableRow();
  7.                 Fila.TabIndex = (short)f;
  8.                 Fila.Attributes.Add("runat", "server");
  9.                 tbl_docPorEvento.Rows.Add(Fila);
  10.  
  11.                 //Creacion de columnas con datos para realizar el ingreso a la BD
  12.              
  13.  
  14.            
  15.  
  16.                 //Filas visibles
  17.                 Columna = new TableCell();
  18.                 Columna.Attributes.Add("id", "");
  19.                 Columna.Attributes.Add("runat", "server");    
  20.                 Columna.Text = (r + 1).ToString();
  21.                 Fila.Cells.Add(Columna);    
  22.  
  23.                 Columna = new TableCell();
  24.                 Columna.Attributes.Add("id", "_doc");
  25.                 Columna.Attributes.Add("runat", "server");    
  26.                 Columna.Text = ds_resul.Tables["resultado"].Rows[r]["_doc"].ToString();
  27.                 Fila.Cells.Add(Columna);    
  28.  
  29.                 Columna = new TableCell();
  30.                 Columna.Attributes.Add("id", "_doc");
  31.                 Columna.Attributes.Add("runat", "server");    
  32.                 Columna.Text = ds_resul.Tables["resultado"].Rows[r]["_doc"].ToString();
  33.                 Fila.Cells.Add(Columna);    
  34.  
  35.                
  36.  
  37.                 seleccionar = new CheckBox();
  38.                 seleccionar.ID =  "sel_" + i;                
  39.                 //seleccionar.Checked = true;
  40.                 seleccionar.Attributes.Add("onChange", "mostrar(" + i + ")");                
  41.                 Columna = new TableCell();
  42.                 Columna.Attributes.Add("id", "seleccionar_fila");
  43.                 Columna.Attributes.Add("runat", "server");                    
  44.                 Columna.Controls.Add(seleccionar);                
  45.                 Fila.Cells.Add(Columna);                                                                                
  46.  
  47.                 //Agregamos una fila con propiedad visible en false que mostrara en contenido del doumento
  48.                 F_Invisible = new TableRow();                
  49.                 F_Invisible.TabIndex = (short)i;                
  50.                 F_Invisible.Attributes.Add("runat", "server");    
  51.                 tbl_docPorEvento.Rows.Add(F_Invisible);
  52.                                                          
  53.                 TableCell colTMP = new TableCell();
  54.                 F_Invisible.Cells.Add(colTMP);
  55.  
  56.                 secundaria = CargarGrilla(tbl_docPorEvento.Rows[i].Cells[0].Text,
  57.                                           tbl_docPorEvento.Rows[i].Cells[3].Text,
  58.                                           tbl_docPorEvento.Rows[i].Cells[1].Text,
  59.                                           tbl_docPorEvento.Rows[i].Cells[2].Text);
  60.                 if (secundaria != null)
  61.                 {
  62.                     //Creamos la segunda tabla
  63.                     Table tbl_secundaria = new Table();
  64.                     tbl_secundaria.ID = "tabla_secundaria";
  65.                     tbl_secundaria.Attributes.Add("runat", "server");
  66.                     tbl_secundaria.Attributes.Add("border", "1");
  67.                     tbl_secundaria.Attributes.Add("align", "center");
  68.                     tbl_secundaria.Attributes.Add("cellpadding", "0");
  69.                     tbl_secundaria.Attributes.Add("cellspacing", "0");
  70.                     tbl_secundaria.Attributes.Add("width", "900");
  71.  
  72.                     secu_fil = secundaria.Rows.Count;
  73.                     secu_col = secundaria.Columns.Count;
  74.  
  75.                     TableRow fila_secu = new TableRow();
  76.                     TableCell cell_secu = new TableCell();
  77.  
  78.                     switch (tbl_docPorEvento.Rows[i].Cells[3].Text)
  79.                     {
  80.                         case "0":
  81.                             fila_secu = new TableRow();
  82.                             fila_secu.Attributes.Add("runat", "server");
  83.                             tbl_secundaria.Rows.Add(fila_secu);
  84.  
  85.                             cell_secu = new TableCell();
  86.                             cell_secu.Attributes.Add("align", "center");
  87.                             cell_secu.ColumnSpan = 4;
  88.                             cell_secu.Text = "Antecedentes del Prevencionista";
  89.                             fila_secu.Cells.Add(cell_secu);
  90.  
  91.                             fila_secu = new TableRow();
  92.                             fila_secu.Attributes.Add("runat", "server");
  93.                             tbl_secundaria.Rows.Add(fila_secu);
  94.  
  95.                             cell_secu = new TableCell();
  96.                             cell_secu.Text = "Seleccionar";
  97.                             fila_secu.Cells.Add(cell_secu);
  98.  
  99.                             cell_secu = new TableCell();
  100.                             cell_secu.Text = "ID";
  101.                             fila_secu.Cells.Add(cell_secu);
  102.  
  103.                             cell_secu = new TableCell();
  104.                             cell_secu.Text = "RUT";
  105.                             fila_secu.Cells.Add(cell_secu);
  106.  
  107.                             cell_secu = new TableCell();
  108.                             cell_secu.Text = "Nombre";
  109.                             fila_secu.Cells.Add(cell_secu);
  110.                             break;
  111.  
  112.                         case "6":
  113.                             fila_secu = new TableRow();
  114.                             fila_secu.Attributes.Add("runat", "server");
  115.                             tbl_secundaria.Rows.Add(fila_secu);
  116.  
  117.                             cell_secu = new TableCell();
  118.                             cell_secu.Attributes.Add("align", "center");
  119.                             cell_secu.ColumnSpan = 4;
  120.                             cell_secu.Text = "Antecedentes de Vehiculos del Contratista";
  121.                             fila_secu.Cells.Add(cell_secu);
  122.  
  123.                             fila_secu = new TableRow();
  124.                             fila_secu.Attributes.Add("runat", "server");
  125.                             tbl_secundaria.Rows.Add(fila_secu);
  126.  
  127.                             cell_secu = new TableCell();
  128.                             cell_secu.Text = "Seleccionar";
  129.                             fila_secu.Cells.Add(cell_secu);
  130.  
  131.                             cell_secu = new TableCell();
  132.                             cell_secu.Text = "Tipo";
  133.                             fila_secu.Cells.Add(cell_secu);
  134.  
  135.                             cell_secu = new TableCell();
  136.                             cell_secu.Text = "Marca";
  137.                             fila_secu.Cells.Add(cell_secu);
  138.  
  139.                             cell_secu = new TableCell();
  140.                             cell_secu.Text = "Modelo";
  141.                             fila_secu.Cells.Add(cell_secu);
  142.                             break;
  143.  
  144.                         default:
  145.                             break;
  146.  
  147.                     }
  148.  
  149.                     for (secu_fil = 0 ; secu_fil < secundaria.Rows.Count; secu_fil++)
  150.                     {
  151.                         fila_secu = new TableRow();
  152.                         fila_secu.Attributes.Add("runat", "server");
  153.                         tbl_secundaria.Rows.Add(fila_secu);
  154.  
  155.                         seleccionar = new CheckBox();
  156.                         seleccionar.Attributes.Add("runat", "server");
  157.                         cell_secu = new TableCell();
  158.                         cell_secu.Controls.Add(seleccionar);
  159.                         fila_secu.Cells.Add(cell_secu);
  160.  
  161.                         for (secu_col = 0; secu_col < secundaria.Columns.Count; secu_col++)
  162.                         {
  163.                             cell_secu = new TableCell();
  164.                             cell_secu.Attributes.Add("runat", "server");
  165.                             cell_secu.Text = secundaria.Rows[secu_fil][secu_col].ToString();                            
  166.                             fila_secu.Cells.Add(cell_secu);
  167.                         }
  168.                     }
  169.  
  170.                     C_Invisible = new TableCell();
  171.                     C_Invisible.Controls.Add(tbl_secundaria);
  172.                 }
  173.                 else
  174.                 {
  175.                     C_Invisible = new TableCell();
  176.                 }
  177.                                
  178.                 //C_Invisible.Attributes.Add("style", "visibility:hidden;");
  179.                 C_Invisible.ColumnSpan = 6;
  180.                 C_Invisible.ID = "fil_" + i;
  181.                 C_Invisible.Attributes.Add("align", "left");              
  182.                 F_Invisible.Cells.Add(C_Invisible);
  183.                 f = f + 2;
  184.             }            
  185.             conx.Clone();
  186.         }