У меня проблема с формой C # ASP.NET. Цель формы - загрузить несколько пар ключ / значение из базы данных, чтобы пользователь мог просматривать, редактировать или удалять их.
Пары ключ / значение генерируются динамически в событии Page_Load, и все работает хорошо, когда страница впервые открывается. Вот пример кода (обрезан по сравнению с оригиналом)
TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Text = keyName;
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = keyValue;
row.Cells.Add(cell);
KeyValueTable.Rows.Add(row);
Я просто перебираю все пары ключ / значение, и каждая из них динамически добавляется в таблицу. В момент загрузки страницы все работает гладко, и все пары ключ / значение отображаются, как и ожидалось.
Проблема возникает, когда пользователь нажимает кнопку, которая, поскольку для нее установлено значение runat = "server", генерирует событие обратной отправки. Похоже, что это делает, это очищает динамический контент, сгенерированный выше, а затем воссоздает его (так как он создается в событии Page_Load).
То, что я предпочел бы сделать, это выбрать, когда этот динамический контент очищается, поскольку я не хочу, чтобы он обновлялся без необходимости, поскольку каждое обновление фактически происходит из базы данных.
То, что я пытался сделать, - это выполнить генерацию динамического контента, если это не постбэк. То есть:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GenerateDynamicContent();
}
}
Однако то, что теперь делает, - это генерирует динамический контент при первой загрузке страницы, однако, как только происходит какое-либо событие обратной передачи (например, пользователь нажимает кнопку), динамический контент стирается, но не создается.
В основном я надеюсь найти способ создания динамического контента, как показано выше, который не стирается ни при каком событии обратной передачи. Я хочу иметь возможность контролировать, когда он обновляется, а не происходит при любом событии обратной передачи. Это возможно?
Большое спасибо