Ниже мой кодНайти динамически создаваемые элементы управления внутри литерал в asp.net странице
- .aspx, файл
<div id="testDiv" runat="server"></div>
- в .aspx.cs файл
Literal lit1 = new Literal();
lit1.Text = "<table class='allocTable'>";
lit1.Text += "<tr><td><input type='text' runat='server' id='testbox1'></input></td></tr>";
... some other controls <tr><td>...
lit1.Text += "</table>"
testDiv.Controls.Add(lit1);
Теперь, как я могу найти testbox1 в файле .aspx.cs? Я использовал FindControl для testDiv и placeHolder, но он возвращает null.
Кажется, что текстовые поля не были добавлены в элемент управления страницы, но они только что были отображены.
Requst.Form ["textbox1"] пуст. кажется, когда вы добавляете элементы управления в литерал, они просто отображаются на стороне клиента, а сервер не о них. – user217648
На обратной стороне должно быть значение. Вы можете проверить это, просмотрев отправленные данные с помощью инструментов dev вашего браузера. Кроме того, это может быть typo textbox1 versus testbox1 – schudel
Я проверил тело запроса в инструментах dev (Network), и значения есть. но в SaveButton_Click значения пустые. Я прочитал статью, в которой говорится, что мне нужно создавать текстовые поля в Page_init, а не в Page_load, правильно? – user217648