2013-09-12 3 views
0

Привет У меня есть выпадающий список:Установите значение выпадающего списка постоянно

<asp:DropDownList ID="ddlResultsSinceLast" runat="server" AutoPostBack="true"> 
    <asp:ListItem Text="15MIN" Value="15"></asp:ListItem> 
    <asp:ListItem Text="30MIN" Value="30"></asp:ListItem> 
    <asp:ListItem Text="1Hr" Value="1H"></asp:ListItem> 
</asp:DropDownList> 

Значение по умолчанию является 15. Теперь я изменяю значение до 30. Когда я перезагружаю страницу, значение снова устанавливается на 15. Есть ли способ, которым я могу убедиться, что при перезагрузке страницы или когда кто-то еще входит в систему на сайте, которое они видят 30, вместо значения по умолчанию, которое равно 15.

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

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

+0

Как постоянное решение вы ищете, и какие браузеры вы хотели бы поддержать? –

ответ

2

Как постоянный является постоянным? Если это только для сеанса и пользователь отправляет в конце, использование переменных сеанса, вероятно, лучший способ сделать это. Если вы хотите, чтобы это было для каждого пользователя, вы можете по желанию отказаться от файла cookie со значениями (при условии, что это не конфиденциальная информация), хотя это может быть уничтожено в какой-то момент времени. В противном случае лучше всего было бы использовать базу данных с информацией. Если это значения, которые необходимо изменить и хранить в глобальном масштабе, кеширование, вероятно, является лучшим решением (хотя это будет только полупостоянно)

1

Если вы хотите, чтобы он был глобальным, он должен был поступать из своего рода хранилища (например, базы данных или XML-файла) ... если вы хотите, чтобы он был на основе каждого пользователя, вы можете использовать переменные сеанса или печенье.

0

Чтобы элементы управления страницы были постоянными, вам необходимо сохранить их значения в database. Затем каждый раз, когда страница загружается новым пользователем, значения будут поступать от DB. При первой загрузке вы можете сохранить их в application cache, а затем загрузите оттуда вместо того, чтобы снова ударить db.

Кэш приложений будет доступен всем, так что это будет вашим лучшим вариантом, чтобы сделать его глобальным. Взгляните на using application cache.

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

0

То, как у вас там есть, оно «жестко закодировано» в разметке ASPX. Единственный способ обеспечить это изменение заключается в привязке данных DropDownList к источнику данных, который вы контролируете. Как файл XML или таблица базы данных. Как только DDL привязан к этому источнику данных, вы всегда будете контролировать, какие значения отображаются.

Вот учебник вы можете использовать, который показывает, как сделать это с помощью базы данных: http://www.c-sharpcorner.com/UploadFile/rohatash/binding-dropdownlist-with-database-and-display-data-in-gridv/

0

Что вы можете сделать ... добавьте еще один элемент в свой список, который --- выберите ---- некоторые вещи вот так:

<asp:DropDownList ID="ddlResultsSinceLast" runat="server" AutoPostBack="true"> 
    <asp:ListItem Text="15MIN" Value="15"></asp:ListItem> 
    <asp:ListItem Text="30MIN" Value="30"></asp:ListItem> 
    <asp:ListItem Text="1Hr" Value="1H"></asp:ListItem> 
    <asp:ListItem Text="---Select---" Value="-1" selected="true"></asp:ListItem> 
</asp:DropDownList> 

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

Смежные вопросы