powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Repeater DataBound
3 сообщений из 3, страница 1 из 1
Repeater DataBound
    #38758990
УКРОП_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public RequestCollection<IRequest> Source
    {
        set
        {
            repeater.DataSource = value;
            repeater.DataBind();
        }
    }




Подскажите как можна записать покороче

Код: 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.
protected void rList_DataBound(object source, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            LinkButton phone = e.Item.FindControl("lbPhone") as LinkButton;
            Label client = e.Item.FindControl("lClient") as Label;
            Label created = e.Item.FindControl("lCreated") as Label;
            //....

            if (e.Item.DataItem is Class1)
            {
                Class1 class = e.Item.DataItem as Class1;
                phone.Text = class.Phone;
                phone.CommandArgument = class.Id.ToString();
                //....
                
            }
            if (e.Item.DataItem is Class2)
            {
                Class2 class2 = e.Item.DataItem as Class2;
                phone.Text = class2.Phone;
                phone.CommandArgument = class2.Id.ToString();
                //....
            }
        }
    }




Подскажите можна ли if записать как то так

Код: c#
1.
2.
3.
var item = подобрать нужный класс
phone.Text = item.Phone;
phone.CommandArgument = item.Id.ToString();



Если классов будет 10 не писать же 10 if (e.Item.DataItem is Class[N])

Спасибо.
...
Рейтинг: 0 / 0
Repeater DataBound
    #38759102
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УКРОП_,

Class1 - это надеюсь для примера такие названия ?
смотрите сами у вас есть Class1 и Class2 в котором есть одно и то же свойство Phone
1. если эти классы не наследуют друг друга то заведите интерфейс с свойством Phone и пишите e.Item.DataItem as IMyClass один раз
2. можно сделать базовый абстрактный класс с таким свойством для них
3. если наследуют - то при преобразовании используйте родителя - as Class1
...
Рейтинг: 0 / 0
Repeater DataBound
    #38759116
УКРОП_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUУКРОП_,

Class1 - это надеюсь для примера такие названия ?
смотрите сами у вас есть Class1 и Class2 в котором есть одно и то же свойство Phone
1. если эти классы не наследуют друг друга то заведите интерфейс с свойством Phone и пишите e.Item.DataItem as IMyClass один раз
2. можно сделать базовый абстрактный класс с таким свойством для них
3. если наследуют - то при преобразовании используйте родителя - as Class1

Class1 - это пример
Class1, Class2 ... наследуются от базового

Код: c#
1.
2.
3.
4.
5.
6.
class Base
{
string Phone {get; set;}
string Client {get; set;}
//...
}



Код: c#
1.
2.
3.
4.
class Class1 : Base, IRequest
{
// поля класса
}



Код: c#
1.
2.
3.
4.
class Class2 : Base, IRequest
{
// поля класса
}



Код: c#
1.
2.
3.
4.
interface IRequest
{
// поля базового класса + некоторые поля общие для Class1, Class2 ....
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Repeater DataBound
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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