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





Здесь для вас есть несколько вариантов.
Добавьте изображение «X» в заголовок каждого столбца и с помощью события onclick в javascript вызовите веб-метод, чтобы удалить этот столбец из профиля пользователя с указанием столбцов для загрузки.
Имейте всплывающую страницу настройки, где будет список флажков для всех столбцов, и пользователь может либо добавить, либо удалить столбцы из сетки.
Есть еще несколько, но они меньше AJAX и больше перезагружают страницы.
Я был бы склонен иметь для этого всплывающий div или окно, показывающее только невыделенные поля, с возможностью удаления для каждого заголовка. Извините, если это мало что добавляет к идее Avitus, однако я предлагаю гибрид из двух предложенных идей, то есть всплывающий список содержит только невыбранные столбцы (как, например, в Outlook). Список должен был создаваться для каждого всплывающего окна или для каждого удаления / добавления.
Кроме того, я предлагаю, чтобы пользователь сохранял только свой выбор, сохраненный по запросу, чтобы разрешить экспериментальный выбор столбца до фиксации, чтобы получить этот макет в следующий раз, и минимизировать доступ к хранилищу.
Вам необходимо сохранить эту информацию в базе данных. На странице администратора вы можете указать имена столбцов и установить флажок «Показать? []». Когда они его проверяют, отображают, если нет, то не отображают. На странице ASPX, когда вы привязываете сетку, вытащите столбцы из базы данных и выполните итерацию по свойству columns в классе DataTable и проверьте имя столбца. Если это хорошо, то показывайте, если нет, то не показывайте.
Есть сто один способ реализовать, выбор за вами.
Я предлагаю хранить эту информацию в базе данных для каждого пользователя. Если у них нет предпочтений, они отображают все столбцы, если они выбирают столбцы, затем сохраняют эту информацию, чтобы при каждом посещении они видели только то, что они хотят видеть.
Для этого переберите доступные столбцы (имена полей) и динамически добавьте их в сетку данных. Вы захотите сделать то же самое в элементе управления списком или аналогичном, чтобы пользователь мог указать, что он хочет видеть. Когда они добавляют нужные столбцы, вы перестраиваете свою сетку, отображая только эти столбцы. Каждый раз, когда они добавляют или удаляют столбцы из списка, вы сохраняете их настройки в базе данных.
Я думаю, что мне действительно интересно, как лучше всего сохранять это от сеанса к сеансу для пользователя.