powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Помогите с оптимальным решением
9 сообщений из 9, страница 1 из 1
Помогите с оптимальным решением
    #33695088
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

Подскажите пожалуйста как можно реализовать следующую задачу:
Имеется веб форма с 5 чекбоксами и одной кнопкой, когда юзер кликает по кнопке мне нужно внести изменения в БД, желательно только чекбоксов значение которых было изменено. Например юзер изменил значение чекбокса 2(кликнул по нему), а остальны не трогал, как можно проверить если значения контролов на форме были изменены? На данный момент я представляю единственное, неоптимальное на мой взгляд, решение - это обдейтит все 5 записей в таблице, даже если пользователь не претронулся к чекбоксам. Получатся не очень экономна, особенно в моем случаее, т.к. для подключения к БД и запуска запросов, я использую веб сервисы. Кто то может что нибудь посоветовать?
Заранее вам благодарен.
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695108
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу ошибаться, но вроде у серверного контрола чекбокс должен быть ивент, что то типа Changed. Подписываешься на него и в хэндлере запоминаешь для каких чеков были изменения.
Хотя возможно есть и другое решение - например запоминать состояние чек боксов во ViewState и сравнивать их после постбэка....

_______________________________________________________
Never ask users what they want, or they'll tell you.
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695191
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм интересно, а как можно запомнит значение в хендлере checkbox, можно небольшой примерчик пажалста?
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695345
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну можна примерно так:

apsx
Код: plaintext
1.
2.
3.
4.
5.
<form id="Form1" method="post" runat="server">
		<asp:CheckBox Runat=server ID="chkCheck1" Text = "Option 1"/>
		<asp:CheckBox Runat=server ID="chkCheck2" Text = "Option 2"/>
		<asp:CheckBox Runat=server ID="chkCheck3" Text = "Option 3"/>
		<asp:Button Runat=server ID="btnOk" Text="OK"/>
    </form>

code behind

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
public class WebForm1 : System.Web.UI.Page
	{
		private void InitializeComponent()
		{    
			chkCheck1.CheckedChanged += new EventHandler(OnCheckedChanged);
			chkCheck2.CheckedChanged += new EventHandler(OnCheckedChanged);
			chkCheck3.CheckedChanged += new EventHandler(OnCheckedChanged);
			btnOk.Click += new EventHandler(btnOk_Click);
		}
		
		private ArrayList _changedChecks = new ArrayList();

		protected CheckBox chkCheck1;
		protected CheckBox chkCheck2;
		protected CheckBox chkCheck3;
		protected Button btnOk;

		override protected void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void OnCheckedChanged(object sender, EventArgs e)
		{
            _changedChecks.Add(sender);
		}

		private void btnOk_Click(object sender, EventArgs e)
		{
			foreach (CheckBox checkBox in _changedChecks)
				Response.Write(checkBox.ID + " was changed");
		}
	}

_______________________________________________________
Never ask users what they want, or they'll tell you.
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695524
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Thanks ... :)
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695765
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минуточку а вы не могли бы объяснить что такое _changedChecks и какую роль он играет.
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695776
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor BartelМинуточку а вы не могли бы объяснить что такое _changedChecks и какую роль он играет.


а этого разве по коду не видно?
в переменной _changedChecks хранится коллекция тех чекбоксов, которые поменяли свое значение....
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33695784
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините Артем, но меня сбил с толку метод add, т.е. в данном случаее вы используете глобалный АрейЛист для хранения чикнутых чекбоксов. Спасибо.
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
Помогите с оптимальным решением
    #33696759
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor Bartelт.е. в данном случаее вы используете глобалный АрейЛист для хранения чикнутых чекбоксов.

ну глобальным бы я его не называл, просто приватное поле класса...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Помогите с оптимальным решением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]