Можно ли динамически добавить элемент управления asp:CheckBox в TableCell?

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

  •  06-07-2019
  •  | 
  •  

Вопрос

В моем приложении .NET мне нужно добавить флажок в каждую строку динамически создаваемой таблицы asp:Table.Можно ли сделать это, динамически создавая asp:CheckBox для каждой строки и каким-то образом помещая его внутри объекта TableCell?(В таком случае как?)

Или мне нужно заменить элемент управления asp:table чем-то другим, например элементом управления Повторитель или GridView, чтобы он работал?

Я ищу самое быстрое решение, потому что у меня мало времени.

Заранее спасибо!

/Илва

Это было полезно?

Решение

Вы не хотите делать это на стороне сервера (в CS, как сказал Йоссариан).потому что каждый раз, когда ваша страница перезагружается или обновляется, вам придется заново создавать эти флажки, что будет означать новые флажки при каждой загрузке, что также будет означать, что информация об элементах управления флажками будет потеряна, поскольку они не находятся на стороне клиента, поэтому вся обновленная информация выполненное пользователем (флажок установлен), будет потеряно, поэтому вы хотите иметь возможность узнать, что отмечено, если только вы не добавите jquery, и это не станет более сложным, чем это должно быть

если вы используете веб-страницы, то лучше всего использовать веб-элемент управления asp:Gridview и привязать данные к таблице в коде следующим образом:

  Gridview.Datasource=//ex:data; 

  Gridview.Databind();

Как показано в примере на этой странице здесь

но если вы используете MVC, вам следует добавить их в клиентский код в такой форме:

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

Другие советы

в аспкс:

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

в КС:

TableCell tc;
foreach(TableRow tr in T1.Rows)
{
    tr.Cells.Add(tc = new TableCell());
    ((IParserAccessor)tc).AddParsedSubObject(new CheckBox());
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top