Я пытаюсь вставить значения из динамического текстового поля в базу данных с помощью Entity Framework в Web Forms. В один клик он делает строку таблицы с тремя столбцами, и каждый столбец имеет одно текстовое поле. Каждый другой клик - еще одна строка.Динамические значения текстового поля в базе данных
public static int rowCnt = 0;
protected void BtnAddNewBuildItem_Click(object sender, EventArgs e)
{
// Current row count.
int rowCtr;
// Total number of cells per row (columns).
int cellCtr;
// Current cell counter
int cellCnt;
rowCnt = rowCnt + 1;
cellCnt = 3;
for (rowCtr = 1; rowCtr <= rowCnt; rowCtr++)
{
// Create new row and add it to the table.
TableRow tRow = new TableRow();
TableBuildItems.Rows.Add(tRow);
for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
{
// Create a new cell and add it to the row.
TableCell tCell = new TableCell();
TextBox tb = new TextBox();
// Set a unique ID for each TextBox added
tb.ID = "txtBuisniesItem_Row" + rowCtr + "Cell" + cellCtr;
// Add the control to the TableCell
tCell.Controls.Add(tb);
tRow.Cells.Add(tCell);
}
}
}
Затем, нажав другую кнопку, я попытался вставить значения одной строки в базу данных, но allways - пустая строка.
using (VODOMONTEntities context = new VODOMONTEntities())
{
BuildItem bi = new BuildItem();
for (int i = 0; i < rowCnt; i++)
{
TextBox tb1 = new TextBox();
tb1.ID = "txtBuisniesItem_Row" + (i + 1).ToString() + "Cell" + 1;
bi.Name = tb1.Text; //there is a empty string allways
context.BuildItems.Add(bi);
}
context.SaveChanges();
}
Итак, мой вопрос заключается в том, как вставить динамические значения texbox в базу данных, как в этом случае? Спасибо!
Ваш TextBox объявлен и сразу после этого в том же контексте вы получаете доступ к его «Тексту», так как это может быть не пустая строка? Похоже, вам нужно управлять автоматически созданным текстовым полем, и вам нужна кнопка сохранения, чтобы получить текст текстового поля и сохранить их вместо того, чтобы поместить все в обработчик нажатия кнопки (который также используется для добавления большего количества элементов?). – Hopeless
Спасибо за совет. Я меняю логику, и я нашел решение. – Dacke