Вы на правильном пути в своем мышлении.
FormView
смотрит только на элементы управления верхнего уровня. Если вы встраиваете один из ваших предполагаемых элементов управления вводом в другой серверный элемент управления, FormView
не видит его (он был скрыт внутри внешнего элемента управления). Даже в вашем программном коде вам придется использовать метод FindControl
, чтобы получить тег ввода со стороны сервера <tr>
Таким образом, если у вас было это:
<tr ID="row1" runat="server">
<asp:TextBox ID="myTB" runat="server">12</asp:TextBox>
</tr>
Единственное, что видит FormView
, - это элемент верхнего уровня (<tr>
). Вы бы даже не увидели TextBox
в своем коде , если бы не сделали это:
TextBox myTB = (TextBox)row1.FindControl("myTB");
Поэтому я бы предложил исключить теги "runat" и "ID" из элементов <tr>
; поскольку они предназначены только для демонстрации, они вам на самом деле не нужны на стороне сервера.
Надеюсь, это немного прояснит ситуацию.