В настоящее время у меня есть форма, в которой пользователь должен снять флажки в списке флажков, прежде чем нажимать кнопку «Сохранить», которая сохраняет их выборки в базе данных. Список значений извлекается из базы данных и привязывается к списку флажков. Так что это в основном динамический список флажков.
Я бы хотел изменить это так, чтобы выбор пользователя немедленно и автоматически сохранялся в базе данных после того, как пользователь установит флажок.
Я думал, что это можно сделать с помощью панели обновления, списка данных и флажков.
Пример:
<asp:UpdatePanel ID="upnlServices" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DataList ID="dlistAnimals" runat="server">
<ItemTemplate>
<asp:CheckBox ID="chkAnimal" AutoPostBack="true" OnCheckedChanged="animal_click" runat="server" />
<asp:Label ID="lblAnimal" AssociatedControlID="chkAnimal" runat="server"<%#Eval("Name")%></asp:Label>
</ItemTemplate>
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
"animal_click" - это функция в коде, которая добавляет или удаляет значение из базы данных, используя хранимую процедуру. Если выбор был ранее выбран, он удаляется, но если выбор не существует в базе данных, он просто добавляется.
Это все работает на моей локальной машине, но когда я помещаю его на удаленный сервер, форма кажется медленной. Пользователь быстро отметит несколько флажков, но не все варианты были сохранены в базе данных. Создается впечатление, что сервер недостаточно быстро справляется с действиями пользователя.
Я не совсем уверен, почему это так. Если есть более эффективный способ сделать это, меня будут интересовать предложения.