Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Двойной биндинг данных TwoWay / 8 сообщений из 8, страница 1 из 1
05.08.2013, 10:08
    #38354720
ЛехаПан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
Добрый день

Решил поднять и модернизировать старые проекты ASP.NET, последние 3 года сидел на WPF/Silveright(если говорить про Windows)

Сталкнулся с непонятным.
- Как сделать двух сторонний биндинг .?
Цель:
При изменение свойства, происходит реакция на действие и я обрабатываю необходимый метод.
- Можно ли такое в ASP.NET?

Что у меня есть.
MyCheckBox - самодельный чек бокс, с тремя вариантами флага
выделение

пусто

неактив


Биндинг в одну сторону проходит, тут вопросов нет.


Класс
Код: c#
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.
34.
35.
36.
37.
38.
public class ItemView : INotifyPropertyChanged
{
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, e);
        }

        protected void OnPropertyChanged(string propertyName)
        {
            OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
        }

	
	private byte checkIn = 255;
        [
            Bindable(true, BindingDirection.TwoWay),
            Browsable(true),
            DefaultValue(255),
            Description("CheckIn")
        ]
        /*нужно получить изменение этого свойства*/
        public byte CheckIn
        {
            get
            {
                return checkIn;
            }
            set
            {
                checkIn = value;
                OnPropertyChanged("CheckIn");
            }
        }

}



Привязка данных
Код: c#
1.
2.
3.
4.
5.
6.
7.
List<ItemView> Items = ПолучаюКоллекцию()

//после делаем на каждый item событие 
item.PropertyChanged += { Метода() };

Repeater.DataSource = Items;
Repeater.DataBind();



WebForms
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<asp:Repeater ID="Repeater" runat="server">
        <ItemTemplate>
                <MyControl:MyCheckBox runat="server" Value ='<%#DataBinder.Eval(Container.DataItem, "CheckIn") %>' ID="box1" />
               <%--  даже делал так -%>
		<MyControl:MyCheckBox runat="server" Value ='<%#Bind("CheckIn") ) %>' ID="box1" />
                

                <span><%# Eval("Name") %></span>
                <span><%# Eval("Price") %></span>

        </ItemTemplate>
    </asp:Repeater>



Подскажите пожалуйста в каком направление двигаться?.
Весь день потерял на изыскания, результата нет ((.
...
Рейтинг: 0 / 0
05.08.2013, 10:20
    #38354740
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
ЛехаПанПри изменение свойства, происходит реакция на действие и я обрабатываю необходимый методесли для этого перегружать страницу, то будет имхо некрасиво
рассмотрите вариант с "реакцией" на клиенте, посредством JS
http://api.jquery.com/click/

плюс, возможно, общение с сервером посредством ajax...
...
Рейтинг: 0 / 0
05.08.2013, 10:32
    #38354751
ЛехаПан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
Паганель,

Спасибо.
С методом понятно.

Как мне получить значение, изменяемого свойства.?

К примеру, на старте
CheckIn = 1

После отжатия, стало
CheckIn = 0

Я пробовал после каждого действия перебирать коллекцию, но свойство там не менялась.
В цикле перебирал коллекцию Items
Код: c#
1.
List<ItemView> 
...
Рейтинг: 0 / 0
05.08.2013, 10:49
    #38354771
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
ЛехаПанКак мне получить значение, изменяемого свойства.?
Код: javascript
1.
2.
3.
    $('#myCheckbox').click(function() {
        alert($(this).is(':checked'));
    });

http://jsfiddle.net/HNEps/
...
Рейтинг: 0 / 0
05.08.2013, 11:48
    #38354852
ЛехаПан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
Понятно.

а как это значение получить в коде C# ?
Там будет не только true или false

Для чего мне это нужно?
1) Хочу проработать значение в коде + поиск в других источниках (например БД)
2) После, взять коллекцию и сохранить в БД.(с уже измененными значениями.)

Мне нужно вызвать методы C#, а не методы JS.

или в ASP.NET немного другой принцип работы с данным, по сравнению с WPF/Silverlight.
Подзабыл, я что то ))
...
Рейтинг: 0 / 0
05.08.2013, 11:50
    #38354856
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
ЛехаПана как это значение получить в коде C# ?передать его на сервер
либо перегружая страницу, либо посредством ajax...
...
Рейтинг: 0 / 0
05.08.2013, 13:15
    #38355035
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
Автор, забудь про XAML и INotifyPropertyChanged. Это веб, тут другая религия :)

P.S. Купи букварь.
...
Рейтинг: 0 / 0
05.08.2013, 13:32
    #38355082
ЛехаПан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двойной биндинг данных TwoWay
МСУАвтор, забудь про XAML и INotifyPropertyChanged. Это веб, тут другая религия :)

P.S. Купи букварь.

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


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