Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> user control + data binding, как показать "таблицу" 
:(
    Опции темы
Kefir
Дата 26.6.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



задача - сделать юзер контрол с дата биндингом.
(я сам в первый раз пытаюсь это делать)

значит есть в БД таблицы. много таблиц. большинство надо показывать в контроле, который выглядит примерно следующим образом:
Код

            ___________________________________
           |  __________     __________  |  ▲  |
           | |          |   |          | |_____|
           | |  Клубы   |   |   Кафе   |       |
           | |__________|   |__________|       |
           |  __________     __________        |
           | |          |   |          |       |
           | |Рестораны |   |   Бары   |  _____|
           | |__________|   |__________| |  ▼  |
           |_____________________________|_____|

как видно из рисунка - четыре кнопки с имитацией скролла (стрелки вверх/вниз справа). я что-то никак не пойму как мне привязать в контролу датасорц и датамембер (чтобы было так - датасорц - это таблица бд, датамембер - это имя поля которое выводить на кнопки). это раз. как мне вообще сделать так, чтобы показывало не одну и ту же инфу на всех 4х кнопках, а 4 поля идущих подряд. и вопрос не менее важный - как мне реалиховать кнопки вниз и вверх?..

то что у меня на данный момент написано:
Код

    [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
    public partial class cat : UserControl
    {
        private object dataSource;
        private string dataMember;

        public object DataSource
        {
            get { return this.dataSource; }
            set { this.dataSource = value; }
        }

        public string DataMember
        {
            get { return this.dataMember; }
            set { this.dataMember = value; }
        }

        public cat()
        {
            InitializeComponent();
        }

        public void Bind()
        {
            button1.DataBindings.Add("Text", this.dataSource, this.dataMember);
            button2.DataBindings.Add("Text", this.dataSource, this.dataMember);
            button3.DataBindings.Add("Text", this.dataSource, this.dataMember);
            button4.DataBindings.Add("Text", this.dataSource, this.dataMember);


            button1.BindingContext[this.dataSource, this.dataMember].Position = 1;
            button2.BindingContext[this.dataSource, this.dataMember].Position = 2;
            button3.BindingContext[this.dataSource, this.dataMember].Position = 3;
            button4.BindingContext[this.dataSource, this.dataMember].Position = 4;
        }

        private void cat_Load(object sender, EventArgs e)
        {
            //Bind();
        }

        private void buttonLeft_Click(object sender, EventArgs e)
        {
            button1.BindingContext[this.dataSource, this.dataMember].Position -= 1;
            button2.BindingContext[this.dataSource, this.dataMember].Position -= 1;
            button3.BindingContext[this.dataSource, this.dataMember].Position -= 1;
            button4.BindingContext[this.dataSource, this.dataMember].Position -= 1;
        }

        private void buttonRight_Click(object sender, EventArgs e)
        {
            button1.BindingContext[this.dataSource, this.dataMember].Position += 1;
            button2.BindingContext[this.dataSource, this.dataMember].Position += 1;
            button3.BindingContext[this.dataSource, this.dataMember].Position += 1;
            button4.BindingContext[this.dataSource, this.dataMember].Position += 1;
        }

        // NB! это я добавил на контрол кнопку buttonBind ибо при вызове Bind() в Load дизайнер ругался,
        // что датасорц не может быть null и отказывался работать (совсем-совсем)
        private void buttonBind_Click(object sender, EventArgs e)
        {
            this.Bind();
        }
    }


в общем надеюсь, что описал проблему достаточно подробно. если нет - спрашивайте - отвечу ASAP.
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0395 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.