Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ListView c UserControl  (Прочитано 3842 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« : 27-07-2010 14:16 » 

Если в ItemTemplate объекта ListView создать например кнопку или линк:


Код:
      <ItemTemplate>
                 <asp:LinkButton runat="server" ID="btn1" Text="Button1" CommandName="btn1" CommandArgument='<%# Eval("Id") %>' />
        </ItemTemplate>

то нажатие кнопки отлавливается в событии ListView ItemCommand.

Всё замечательно. Всё работает.

Теперь я вместо кнопки использую свой контрол, в котором есть кнопка.

Код:
      <ItemTemplate>
            <myns:MyControl ID="MyControl1" runat="server" CommandName="btn1" CommandArgument='<%# Eval("Id") %>' />
        </ItemTemplate>

Какое событие надо сгенерить в MyControl при нажатии на его кнопку, чтобы ListView среагировал ItemCommand-ом? Короче чтобы мой контрол вёл себя как кнопка.

зы. Может это как-то по-другому делается?

зы. зы. опыт работы с ASP 8 часов.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 27-07-2010 14:59 » 

Полагаю, "onclick" или "mousedown". Ведь по сути вся эта asp-шная заморочка превращается в html+javascript.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 28-07-2010 11:14 » 

Задумка какая была. Хэндл события ItemCommand объекта ListView выглядит так:

Код:
    protected void _listView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        var cmd = e.CommandName;
        var arg = e.CommandArgument;
    }

В этом месте меня интересует аргумент, те от какой строки пришло событие. Строки списка (мои контролы) содержат _ID типа string, который я хочу передать "наверх".
Поэтому я и хотел в моём контроле что-нить такое изобразить (ессно это так не работает, просто чтоб идею визуализировать, ну допустим _controlItemCommand - это событие, в котором ListView регистрирует свой обработчик, чтобы потом сгенерить ItemCommand):

Код:
    protected void OnMyButton_Click(object sender, EventArgs e)
    {
        if (_controlItemCommand != null)
        {
            _controlItemCommand(this, new ListViewCommandEventArgs(_ID) );
        }
    }

Допустим простая кнопка. ListView должен что-то как-то в ней регистрировать, чтобы потом свой ItemCommand генерить?

Да, конечно, можно сделать ручками. Добавить в контрол event, после создания списка, пробежать по всем item и добавить в каждый обработчик... Неспортивно. Ведь это уже всё есть. Знаний не хватает...

Ну и, собственно говоря, тема представляет уже чисто платонический интерес. Все юзверьконтролы выброшены. Всё сделано в GridView. Те проблема отпала. Но интерес остался. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 28-07-2010 12:20 » 

Жень, не подскажу - я с этой хренью лишь однажды сталкивался и было это года три назад.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 28-07-2010 13:34 » 

Да вот и я тоже... Только сейчас. Хотя три года назад его (ListView) ещё не было. Он только в 3.5 появился.

И в инете не так уж и много про такую лабуду (может плохо искал?). Те то, что мне надо, я ваще не нашёл. Может это вобще запрещённый приёмчик так свои контролы размножать... Короче спецы нужны. Ну... дык, может забредут, вразумят.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 28-07-2010 13:56 » 

Я не про ListView, а про контролы в ASP вообще.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 28-07-2010 14:09 » 

Аааа... Да с юзверьконтролами худо-бедно да получается. Пока они жёстко на страничке заданы... А вот с динамикой проблемки всякие возникают. Блин, ну не генерить же HTML код. Причём самое страшное, что ведь где-то понимаешь, что как-то оно должно работать... А в результате сегодня под утро лёг спать, через час соскочил помчался на работу. Одно преимущество - скорость у поезда околосветовая. Только глазки закрыл и уже на месте. Но в остальном... Поэтому вспомнили про KISS, да бросили всё это нафиг. В общем я ща уже другими вещами занимаюсь... Теперь до след. раза (может и через три года). И так всегда.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines