Повторитель данных, вложенный в GridView, не будет обновляться

У меня есть Repeater вложенный внутри GridView, На RowDataBound событие для GridViewЯ установил DataSource (на основе одного из столбцов строки), а затем связать Repeater, Это прекрасно работает для начальной загрузки, однако мне нужно иметь возможность добавлять новые элементы в Repeater динамически.

Я добавляю элемент в DataSource, сохранить его в ViewStateи где я обычно связываюсь с помощью вызова метода, я связываюсь с объектом, сохраненным в ViewState вместо. DataSouce отражает изменение, однако страница - нет.

Что мне не хватает? У меня точно такая же настройка на другой странице без вложенности, и она отлично работает.

if (ViewState["RepeaterObj"]!=null)
{
   rpt.DataSource=(IList<DataTransferObject>)ViewState["RepeaterObj"];
}
else
{
   rpt.DataSource = controller.GetObj(param);
   rpt.DataBind();
}

3 ответа

Решение

Я закончил тем, что решил вопрос, отказавшись от использования ViewState полностью, хотя я думал, что мой временный DataSource будет потеряно через postback это не было Я закончил тем, что пошел с классом variable который работает отлично. Кажется, я не совсем понял, что происходит во время postback,

Прежде всего, вы не должны хранить источник данных в ViewState. Это самое худшее место, которое вы могли бы выразить.

Что касается вашей проблемы, я бы предложил либо повторно связать GridView при добавлении новых элементов в ретранслятор, либо найти ретранслятор в случае сохранения новой записи и связать ее там.

Я думаю, что проблема в том, что вы не привязываете Repeater, Вы говорите, что изменяете то, как вы связываете взгляд на ViewState объект, но вы на самом деле вызывает Bind происходить? Похоже, что вы не, и страница просто перезагружается с текущими данными, сохраненными с помощью элемента управления ViewState,

Убедитесь, что вы звоните Repeaters явное связывание события, чтобы убедиться, что оно получает отскок.

РЕДАКТИРОВАТЬ: Я подозреваю, что это может быть что-то делать, где вам может понадобиться, чтобы привязать GridView и не только Repeater,

Другие вопросы по тегам