Pregunta

En mi aplicación .NET necesito agregar una casilla de verificación a cada fila en un asp: Table creado dinámicamente. ¿Es posible hacer eso creando dinámicamente un asp: CheckBox para cada fila y de alguna manera ponerlo dentro de un objeto TableCell? (En ese caso, ¿cómo?)

¿O necesito reemplazar el control asp: table con algo más, como un control Repeater o GridView para que funcione?

Estoy buscando la solución más rápida porque no tengo mucho tiempo.

¡Gracias de antemano!

/ Ylva

¿Fue útil?

Solución

No desea hacerlo en el lado del servidor (en el cs como dijo Yossarian). porque cada vez que su página se vuelve a cargar o actualizar, tendría que volver a crear esas casillas de verificación, lo que significaría nuevas casillas de verificación cada carga, lo que también significaría que la información de los controles de su casilla de verificación se perderá porque no están en el lado del cliente, por lo que toda la información actualizada hecho por el usuario (casilla de verificación marcada) se perderá, por lo que querrá saber qué está marcado a menos que agregue jquery y comience a complicarse más de lo necesario.

si está usando páginas web, entonces sería mejor usar asp: control web Gridview y vincular los datos a la tabla en el código de la siguiente manera:

  Gridview.Datasource=//ex:data; 

  Gridview.Databind();

Como se muestra en el ejemplo de esta página aquí

pero si está utilizando MVC, entonces los agregaría en el código del cliente de la siguiente manera:

      <% using (Html.BeginForm("Presentation", "Home")) %>
        <% { %>
  <table id="Table" class="color" width="100%" border="1"> 
<colgroup width="3%" ></colgroup>
<colgroup width="15%"></colgroup>
<colgroup width="20%"></colgroup>
<colgroup width="15%"></colgroup>
<colgroup width="47%"></colgroup>
<thead>
    <tr class="dxgvHeader_Glass"> 
         <th id="CheckBox" class="style1" ><input type="checkbox" class="selectall" id="selectall" name="CheckBox" /></th>

         <th id="DateTime"  runat="server"></th>  
         <th id="Description" runat="server"></th>
    </tr>
</thead> 
<tbody >
<%try
  { %>
   <% foreach (var SamAuditLog in ViewData.Model)
      { %>
        <tr>

            <td class="style1" align="center"><%=Html.CheckBox(""+data.ID) %></td>


             <td><%= data.DateTime%></td>
             <td><%= data.Description%></td>
        </tr>
    <% } %>      

 <%} %>

</tbody>

Otros consejos

en aspx:

<asp:Table id=T1 runat=server />

en cs:

TableCell tc;
foreach(TableRow tr in T1.Rows)
{
    tr.Cells.Add(tc = new TableCell());
    ((IParserAccessor)tc).AddParsedSubObject(new CheckBox());
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top