Является ли хранить массив объектов в ASP.NET ViewState лучшее решение для этого?

голоса
2

Я интересно, если хранить данные в ViewState является хорошей идеей для этой данной проблемы. Он упрощенный пример того, что я пытаюсь достичь, во-первых, мы имеем контроль Repeater:

<asp:Repeater id=Repeater1 runat=server>
<ItemTemplate>
<asp:TextBox id=Name runat=server />
<asp:TextBox id=Age runat=server />
</ItemTemplate>
</asp:Repeater>
<asp:TextBox id=NewPersonName runat=server />
<asp:TextBox id=NewPersonAge runat=server />
<asp:Buttin id=Button1 runat=server Text=Add OnClickButton1_Click/>

Для простоты я буду отказываться от кода Databinding, как это работает он загружает в текущем списке людей и возрастов и связывает отлично.

Проблема с нижним 3 управлением, что я хочу, чтобы пользователь, чтобы иметь возможность ввести новую запись, нажмите кнопку Добавить, и это будет затем добавлено к Repeater, но не сохраняется в базу данных.

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

Задан 09/12/2008 в 19:49
источник пользователем
На других языках...                            


4 ответов

голоса
1

Я бы справиться с этим в одном из двух способов. Первым будут JS массивы и сделать клиентское добавление к / механизму просмотра ретранслятора.

Другой вариант был бы иметь таблицу в моей БД, где я храню эти неподтвержденные дополнения, а затем просто запросить их обратно.

и на самом деле я бы, вероятно, сделать комбинацию из двух. Использование AJAX для отправки данных в незавершенном списке таблицу асинхронна в то время как я строй новых узлов для моего дисплея.

На кнопке SAVE / COMMIT, я бы послал команду совершить на сервер асинхронно, который перемещает предметы пользователя из непринятых tableto совершенного таблице.

Ответил 09/12/2008 в 20:10
источник пользователем

голоса
1

Я хотел бы использовать яваскрипт и хранить его в объектных массивах. Затем, на стороне клиента будет ссылаться на JavaScript массивов для построения пользовательского интерфейса.

Вы можете взглянуть на некоторые из яваскрипта структур, таких как Yahoo Юи, script.aculo.us, JQuery и т.п.

Ответил 09/12/2008 в 20:01
источник пользователем

голоса
1

Я хотел бы использовать DataTable объект и сохранить его в сессии пользователя. Таким образом, у вас есть быстрый способ данных, связывающих друг на добавление / изменение / удаление, и вы можете просто ясно его сессии, когда обработка выполняется. Кроме того, вы можете легко получить доступ к списку пользователей на отдельной странице, если она сочтет это необходимым.

EDIT: Еще один нюанс в том, что в случае необходимости, вы можете легко упасть DataView на вершине этого вам нужно сделать некоторые быстрые сортировки / фильтрации списка пользователей.

Ответил 09/12/2008 в 19:59
источник пользователем

голоса
1

Вы сохраняющиеся весь список из базы данных в ViewState или только незавершенных дополнений?

Если это просто дополнение, то это прекрасно использование ViewState.

Если список из БД не очень большой или неустойчивыми, то я думаю, что было бы хорошо, тоже.

Ответил 09/12/2008 в 19:58
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more