Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Помогите с оптимальным решением / 9 сообщений из 9, страница 1 из 1
27.04.2006, 16:21
    #33695088
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимальным решением
Добрый день,

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

_______________________________________________________
Never ask users what they want, or they'll tell you.
...
Рейтинг: 0 / 0
27.04.2006, 16:46
    #33695191
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимальным решением
Хм интересно, а как можно запомнит значение в хендлере checkbox, можно небольшой примерчик пажалста?
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
27.04.2006, 17:16
    #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
27.04.2006, 17:52
    #33695524
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимальным решением
Thanks ... :)
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
27.04.2006, 19:21
    #33695765
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимальным решением
Минуточку а вы не могли бы объяснить что такое _changedChecks и какую роль он играет.
--
Cordialement
Victor Bartel
...
Рейтинг: 0 / 0
27.04.2006, 19:28
    #33695776
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимальным решением
Viktor BartelМинуточку а вы не могли бы объяснить что такое _changedChecks и какую роль он играет.


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

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


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