Member 13174280 Ответов: 2

Вручную измените элемент таблицы


Пример: datalist с 10 элементами, через равные промежутки времени (таймер) Я хотел бы перейти от пункта[0], пункта[1] и т. д.

SetFocus (DataList1. Items[idxImage]) не очень хорошо, потому что он всегда возвращается к первому элементу datalist.

Я могу сделать цикл, чтобы проверить, равен ли индекс текущего элемента индексу счетчика (idximage), но метод Focus () не перемещается к элементу.

Что я уже пробовал:

SetFocus (DataList1. Items[idxImage]) is not good because it always returns to the first item of the datalist.

foreach (DataListItem item in DataList1. Items)
        {
            if (item. ItemIndex == idxImage)
            {
                (item. FindControl ("ImageButton1") as ImageButton) Focus ();
            }

2 Ответов

Рейтинг:
1

CHill60

Это звучит так, как будто вы пытаетесь изменить, какой элемент выбран с помощью таймера?

Прочтите эту статью CodeProject Выделение и выбор элемента в Даталисте[^] - вам нужно будет адаптировать его для работы с вашим таймером.


Member 13174280

Я модифицировал и выполнил код (для БД MySql) ссылки, но реагирует только на щелчок по элементу DataList.

CHill60

"реагирует только на щелчок по элементу Даталиста" ... код реагирует на нажатие кнопки. Вместо добавления (и нажатия) кнопки поместите этот код в событие таймера

Рейтинг:
1

#realJSOP

Попробовать это:

if (DataList1.Items.Count > 0)
{
    Control ctrl = DataList1.Items[idxImage];
    if (ctrl != null)
    {
        SetFocus(ctrl);
    }
}


Member 13174280

Это решение лучше моего, я все еще не могу переместить фокус с одного пункта на другой.
Я думаю, что мы можем имитировать щелчок по элементу управления ImageButton

охраняемых недействительными Timer1_Tick(объект отправителя, EventArgs в электронной)
{
//моделирования нажимаем на кнопку ImageButton, чтобы включить событие
}