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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический DropDownList 
:(
    Опции темы
Yagmort
Дата 9.12.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



Есть класс в котором создается компонент DDL для каждой строки таблицы в gridview, работает все нормально, кроме события при выборе любого значения из любого списка, выпадает несоклько сообщений  (если контролов 2 штуки выпадает 2 сообщения, если контролов 3 то 3 сообщения итд), мне надо сделать так чтобы для каждого контрола он получал только свой ID и ячейку своей строки. Скрины есть тут http://ifolder.ru/20707282
Если можно поподробнее распишите кто знает... В C# сильно не варю...
Код

namespace o
{
    public class CreateControls
    {

        public class ppc
        {
            DropDownList ddl = new DropDownList();
            public GridView InBut(GridView gv)
            {
           
                  for (int rows1 = 0; rows1 <= gv.Rows.Count - 1; rows1 += 1)
                  ddl.ID = "d"+rows1.ToString();
                  ddl.Items.Add (new ListItem ("1", "")); 
                  ddl.Items.Add (new ListItem ("2", "1")); 
                  ddl.Items.Add (new ListItem ("3", "2")); 
                  ddl.Items.Add (new ListItem ("4", "3"));
                  ddl.AutoPostBack = true;
                  ddl.SelectedIndex = 0;
                  ddl.EnableViewState = false;
                  ddl.SelectedIndexChanged -= new EventHandler(ddl_SelectedIndexChanged1);
                  ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged1);
                  TemplateField tf = new TemplateField();
                  gv.Columns.Add(tf);
                  for (int rows2 = 0; rows2 <= gv.Rows.Count - 1; rows2 += 1)
                    gv.Rows[rows2].Cells[0].Controls.Add(ddl);
                return gv;
                      
            }
            public void ddl_SelectedIndexChanged1(object sender, EventArgs e)
            {
                string s;
                int i;
                var row = (GridViewRow)((DropDownList)sender).Parent.Parent;
                DropDownList ddl = (DropDownList)sender;
                i= row.RowIndex;
                i = 1;
                s = row.Cells[1].Text;
                MessageBox.Show(s+" - "+ddl.ID);
            }
        }
}
}


Это сообщение отредактировал(а) Yagmort - 9.12.2010, 14:08
PM MAIL   Вверх
A5uKa
  Дата 9.12.2010, 14:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Цитата

мне надо сделать так чтобы для каждого контрола он получал только свой ID и ячейку своей строки.

Не понимаю.
Цитата

Скрины есть тут http://ifolder.ru/20707282

Как насчёт показать прям тут картинку ?
Код

                  ddl.SelectedIndexChanged -= new EventHandler(ddl_SelectedIndexChanged1);
                  ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged1);

 smile 

Код

                  ddl.Items.Add (new ListItem ("1", "")); 
                  ddl.Items.Add (new ListItem ("2", "1")); 
                  ddl.Items.Add (new ListItem ("3", "2")); 
                  ddl.Items.Add (new ListItem ("4", "3"));

так динамически создаётся или их четыре ?  smile 

Если динамически можно попробовать лямбда функцию в EventHandler.
PM   Вверх
Yagmort
Дата 9.12.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



Цитата(A5uKa @ 9.12.2010,  14:28)
Цитата

мне надо сделать так чтобы для каждого контрола он получал только свой ID и ячейку своей строки.

Не понимаю.
Цитата

Скрины есть тут http://ifolder.ru/20707282

Как насчёт показать прям тут картинку ?
Код

                  ddl.SelectedIndexChanged -= new EventHandler(ddl_SelectedIndexChanged1);
                  ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged1);

 smile 

Код

                  ddl.Items.Add (new ListItem ("1", "")); 
                  ddl.Items.Add (new ListItem ("2", "1")); 
                  ddl.Items.Add (new ListItem ("3", "2")); 
                  ddl.Items.Add (new ListItem ("4", "3"));

так динамически создаётся или их четыре ?  smile 

Если динамически можно попробовать лямбда функцию в EventHandler.

4 значения в каждом DDL их может быть и 100000 штук смотря сколько записей в таблице
PM MAIL   Вверх
CYBERDREAM
Дата 9.12.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



штамповать столько контролов я бы не стал, это не рационально, лучше динамически цеплять в нужное место контрол при клике или нечто вроде


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 9.12.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



А вот это интерестно как реализовать ?
PM MAIL   Вверх
A5uKa
  Дата 9.12.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Код

                i= row.RowIndex;
                i = 1;

Так можешь всё же уточнить, что хочешь сделать и что не получается.
Я понять не могу.
PM   Вверх
Gluttton
Дата 9.12.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Yagmort, при описании GridView есть возможность описать шаблоны для отображения и для редактирования.
Например для отображения это Label, а для редактирования DropDownList. Тогда однажды описав в секции редактирования DropDownList например по имени ddl, можно будет получать этот DropDownList через FindControl по выбранной строке GridView.

И руками ничего делать не нужно! GridView сам их наштампует ровно столько, сколько нужно!

Подробнее 

Смотреть в сторону:
Код

                <asp:TemplateField>
                      <ItemTemplate>
                       </ItemTemplate>
                </asp:TemplateField>


Добавлено через 11 минут и 11 секунд
Yagmort
Цитата(Gluttton @  9.12.2010,  15:02 Найти цитируемый пост)
Смотреть в сторону:

Самое главное упустил smile :
Код

<EditItemTemplate>




--------------------
Слава Україні!
PM MAIL   Вверх
Gluttton
Дата 9.12.2010, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Yagmort
Прочитал название ветки и всерьез задумался о правильности мною тут насоветованного...
Вопрос ведь про ASP.NET был? Правда?



--------------------
Слава Україні!
PM MAIL   Вверх
Yagmort
Дата 9.12.2010, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



WebFrom ASP.NET я сам не знаю как правильно реализовать, DDL добавлять для каждой записи динамически - ущербно для ресурсов, а как еще реализовать пока не знаю... если есть полные варианты работающие посмотрю... 
PM MAIL   Вверх
Gluttton
Дата 9.12.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Цитата(Yagmort @  9.12.2010,  16:01 Найти цитируемый пост)
WebFrom ASP.NET

Ну тогда ответы читать можно smile ...

Цитата(Yagmort @  9.12.2010,  16:01 Найти цитируемый пост)
если есть полные варианты работающие посмотрю...  

Google


--------------------
Слава Україні!
PM MAIL   Вверх
Yagmort
Дата 9.12.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



Да, но именно по моей теме мало таких ответов... 
PM MAIL   Вверх
Gluttton
Дата 9.12.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Yagmort, может быть это поможет?


--------------------
Слава Україні!
PM MAIL   Вверх
Yagmort
Дата 9.12.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



Я это читал несколько раз. Уже делал анологичный вариант с кнопкой и вроде получалось т.к. у нее есть свойство CommandName, по которому можно сослаться на свойство
Код

ButtonField buttonf = new ButtonField(); 
buttonf.CommandName = "Button1";
...
...
...
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Button1")
            {}
}

по которой можно сослаться на строку и ячейку в строке... а вот с ddl хуже. Пока не понял как. И похоже мне прийдется вернуться к нему и че нить там намутить...

Это сообщение отредактировал(а) Yagmort - 9.12.2010, 16:51
PM MAIL   Вверх
A5uKa
  Дата 9.12.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



а ID чем не подходит ?

Добавлено через 1 минуту и 27 секунд
кроме того есть твойЭлемент..CssClass = "Something"
PM   Вверх
Yagmort
Дата 9.12.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

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



Цитата(A5uKa @ 9.12.2010,  16:55)
а ID чем не подходит ?

Добавлено @ 16:56
кроме того есть твойЭлемент..CssClass = "Something"

Ок вопрос как на сослаться на ID ? 
Код

if (e.CommandArgument == "Button1")

так ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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