Possível adicionar dinamicamente um controle asp: CheckBox a um TableCell?

StackOverflow https://stackoverflow.com/questions/626410

  •  06-07-2019
  •  | 
  •  

Pergunta

Na minha aplicação .NET eu preciso adicionar uma caixa de seleção para cada linha em um asp criados dinamicamente: Table. É possível fazer isso criando dinamicamente um asp: CheckBox para cada linha e de alguma forma colocá-lo dentro de um objeto TableCell? (Nesse caso, como?)

Ou eu preciso para substituir o asp: controle de tabela com outra coisa, como um controle Repeater ou GridView para que ele funcione

Eu estou procurando a solução mais rápida, porque eu não tenho muito tempo.

Agradecemos antecipadamente!

/ Ylva

Foi útil?

Solução

Você não quer fazê-lo no lado do servidor (no cs como disse Yossarian). porque cada vez que sua página é recarregada ou atualizado, você teria que recriar essas caixas, o que significaria novas caixas de cada carga, que também significaria a sua informação controles de caixa de seleção serão perdidos porque eles não estão no lado do cliente, de modo que todas as informações atualizadas feito pelo usuário (caixa de seleção marcada) será perdido, assim que você quer ser capaz de descobrir o que está marcada a menos que você adicionar jquery e ela começa a ficar mais complicado, então ele precisa ser

Se você estiver usando páginas web, então seria melhor usar controle asp: web Gridview e ligar os dados para a tabela no código por trás assim:

  Gridview.Datasource=//ex:data; 

  Gridview.Databind();

Como mostrado no exemplo desta página aqui

mas se você estiver usando MVC, então você poderia adicioná-los no código do cliente de uma forma assim:

      <% 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>

Outras dicas

em aspx:

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

em cs:

TableCell tc;
foreach(TableRow tr in T1.Rows)
{
    tr.Cells.Add(tc = new TableCell());
    ((IParserAccessor)tc).AddParsedSubObject(new CheckBox());
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top