Добавить столбец CheckBox в GridView с сохранением - PullRequest
2 голосов
/ 09 октября 2008

У меня есть приложение ASP.NET, которое отображает различные представления в обширной базе данных последовательностей белков. Когда посетитель просматривает данные, я бы хотел, чтобы он мог выбрать CheckBox в строке GridView, чтобы пометить последовательности для последующей загрузки в виде сжатого текстового файла. Я не хочу хранить выборки, поэтому они должны быть действительны для сеанса.

Моя идея сейчас заключается в том, чтобы добавить TemplateField в GridView, а затем добавить к нему CheckBox. Я намерен обработать события проверки и сохранить идентификаторы последовательности в состоянии сеанса. Когда пользователь отправляется на страницу загрузки, я получаю данные сеанса, отображаю список последовательностей, которые они собираются загрузить, и затем отправляю файл вместе. Очевидно, мне также придется повторно анализировать данные сеанса при каждом переключении загрузки / страницы формы.

Итак, у меня есть пара вопросов по этому поводу:

1) Я делаю слишком много работы? Есть ли более простой способ реализовать это?

2) Вероятно ли, что все обращения к серверу для состояния сеанса могут быть связаны с производительностью? Я могу поставить кнопку «Сохранить для загрузки» на странице, чтобы помочь ей. Обработка событий проверки кажется более терпимой к ошибкам, поскольку вы не можете случайно потерять свое состояние, если уйдете.

3) Можно ли отсортировать GridView по столбцу с установленным флажком? Я хотел бы сначала отсортировать по столбцу с установленным флажком, а затем по текущему столбцу (например, если GridView отсортирован по фамилии, по столбцу проверки, а затем по фамилии).

В случае, если это имеет значение, я использую C #, .NET 3.5, VS2008 и использую простой способ перетаскивания мышью для создания GridView из таблицы SQLServerExpress.

Ответы [ 2 ]

1 голос
/ 10 октября 2008

Используйте AJAX через метод страницы, чтобы отслеживать состояние флажка в состоянии сеанса. Это минимизирует стоимость поездки туда и обратно.

Я не думаю, что вы сможете сортировать по флажку в GridView, так как вам нужно указать столбец сортировки. Вы можете сделать это, создав искусственный источник данных, который в основном объединяет сохраненную информацию о сеансе с данными из таблицы, но не используя SQLDataSource, подключенный непосредственно к таблице.

0 голосов
/ 09 октября 2008

Я не уверен, что есть более простой способ сделать это, но что касается других ваших вопросов:

2.) Вам нужно решить для себя баланс между устойчивостью и сетевым трафиком. Если вы используете событие проверки, вы довольно скоро вернетесь на сервер. Если вы используете другое событие (потеря фокуса на сетке, явное нажатие кнопки «обновить / сохранить» или переход на другую страницу), вы сократите трафик за счет потери информации. Это решение по дизайну интерфейса без «правильного» ответа.

3.) Это возможно, хотя может и не быть автоматическим. Я знаю, что DataGridViews будет генерировать обработчики для сортировки по столбцам флажков автоматически. Я не уверен, что это так просто с обычным GridView. Есть ли причина, по которой вы используете GV, а не DGV?

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