ASP.NET UserControl не обновляется после события - PullRequest
0 голосов
/ 17 сентября 2009

У меня есть элемент управления asp.net, представляющий таблицу, и элемент управления, представляющий строку в таблице. Каждая строка содержит текстовое поле для даты и кнопку для ввода введенной даты.

<asp:TextBox ID="TextBox" runat="server"/>
<asp:ImageButton ID="SubmitButton" onclick="SubmitButton_Click" runat="server" />

Кнопка запускает событие, которое запускает обновление в базе данных.

protected void SubmitButton_Click(object sender, EventArgs e)
{
    //Validate information in TextBox
    //Submit to database
}

Это должно привести к отображению нового набора строк на основе информации, введенной в текстовое поле. Однако обновленная информация не отображается, пока я не принудительно обновлю страницу. Я подозреваю, что это связано с тем, где обработка событий попадает в жизненный цикл страницы / элемента управления asp.net. Насколько я могу судить, значения загружаются в строки до фактического запуска события, что заставляет их получать старые значения, а не новые значения, которые они должны иметь.

Мой вопрос: как лучше всего обойти это? Я предполагаю, что это будет что-то вроде проверки, чтобы увидеть, является ли это обратным вызовом в событии загрузки страницы, и не загружает строки пользовательского элемента управления, а вместо этого заставляет их загружать или обновлять событие, но я не уверен, что это должно похож.

Edit: я думаю, что мне нужно вызвать ту же функцию, которая вызывается в Page_Load, но я не уверен, как добраться до нее из пользовательского элемента управления, я думаю.

Ответы [ 2 ]

3 голосов
/ 17 сентября 2009

Я думаю, вам нужно повторно привязать свою сетку после того, как ваше событие сработало.

1 голос
/ 17 сентября 2009

Как сказал Locksfree, повторное связывание - это то, что вы, вероятно, ищете.

При обратной передаче новые данные автоматически не отображаются, если вы не запросите новые данные специально, вызвав DataBind () вашего объекта asp.net.

Если вы динамически создаете таблицу, вам придется перезапустить код, чтобы заново создать таблицу и получить новые данные. В зависимости от того, как он построен, вы можете избежать частичной перезагрузки только новых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...