У меня возникла проблема с формой C# ASP.NET. Цель формы - загрузить некоторые пары ключ/значение из базы данных, чтобы позволить пользователю просматривать, редактировать или удалять их.ASP.NET - Динамические строки и Page_Load
Пара ключей/значений динамически генерируется в событии 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);
Я просто перебрать все пары ключ/значение, и каждый добавляются динамически к столу. В момент загрузки страницы все работает бесперебойно, и все пары Key/Value отображаются так, как ожидалось.
Проблема возникает, когда пользователь нажимает кнопку, которая с момента установки на runat = "server" генерирует событие обратной связи. Это, как представляется, - это очистить динамический контент, сгенерированный выше, а затем воссоздать его (поскольку он создан в событии Page_Load).
Что я хотел бы сделать, это выбрать, когда этот динамический контент будет очищен, так как я не хочу, чтобы он обновлялся без необходимости, поскольку каждое обновление происходит из базы данных.
Я попытался выполнить генерацию динамического содержимого, если он не является обратной передачей. IE:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GenerateDynamicContent();
}
}
Однако то, что сейчас делает генерации динамического содержимого при первой загрузке страницы, однако, как только произойдет какое-постбэк событие (например, нажатие кнопки пользователем), динамическое содержимое вытирается, но не создано.
В основном, на что я надеюсь, заключается в том, чтобы обнаружить способ, которым я могу создать динамический контент, как показано выше, который не стирается при любом событии обратной передачи. Я хочу иметь возможность контролировать, когда он обновляется, а не происходит в любом событии обратной передачи. Это возможно?
Большое спасибо
Есть много способов 1. Попробуйте поставить эту DataTable в ViewState и отметьте нулевое значение в postback 2. поместите некоторое скрытое поле в форму и проверьте. if (! IsPostBack && hiddenfield1.value), которые могут вам помочь – Madhu