|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
У меня есть tablePane, настроены fixedHeaders="true" и bodyHeight="20em". Предположим пользователь добавляет запись в таблицу, я ее визуально выделяю, но из-за того-что запись находится намного ниже области ограниченной bodyHeight, пользователю, чтобы увидеть запись приходится смещать полосу прокрутки вниз, что не совсем удобно.. Вопрос: можно ли полосой как-то управлять, задавать свои координаты, смещать ее так, чтобы сразу была видна добавленная и выделенная запись? ----------------------------------------------- А мы тут плюшками балуемся... Аленочка тм ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2011, 14:50 |
|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
Аленочкаможно ли полосой как-то управлять, задавать свои координаты, смещать ее так, чтобы сразу была видна добавленная и выделенная запись? Вот пример такого "управления"... http://www.grizun.com/post/view/17/ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2011, 23:51 |
|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
И все-таки скролл поддается дрессировке :-) Скопирую сюда текст рассылки, который писала своим коллегам-разработчикам. Может кому еще пригодится. Для выделения записей в таблице существует несколько вариантов: Вариант 1: устанавливает value для таблицы, и если данное value находится на текущей выбранной пользователем странице в tablePane, визуально эту запись подсвечивает. var table = zen('tblSections'); table.value = id; table.executeQuery(true); Вариант 2: устанавливает номер текущей выбранной строки, num - номер строки, нумерация начинается с 0, при useSnapshot="false" нумерация идет отдельно в рамках каждой страницы. var table = zen('tblSections'); table.setProperty('selectedIndex',num) Вариант 3: позволяет перемещать скролл (вверх, вниз) в таблице таким образом, чтобы подсвеченная запись (с определенным порядковым номером) была видна. Работает только при useSnapshot="false" и fixedHeaders="true". var table = zen('tblSections'); table.selectRow(num,true); { Описание есть в документации классов: Class %ZEN.Component.simpleTablePane Extends (component, querySource) [ Abstract, Inheritance = right ] /// Client-side method to select the given row (0-based) in the table. /// If <var>scroll</var> is true, scroll the new row into view. /// If <var>which</var> is present, it is passed along to the user event notification. ClientMethod selectRow(row, scroll, which) [ Language = javascript ] } Такое решение неудобно тем, что привязано к настройкам таблицы и для перемещения скролла требуется знать порядковый номер записи. Вычислить порядковый номер записи довольно просто, зная исходный запрос в tablePane. Н-р с помощью такого метода: Зен-метод: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Клиентский метод: Код: javascript 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2012, 09:28 |
|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
Аленочка, есть еще метод DOM scrollIntoView() Код: javascript 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2012, 10:44 |
|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
Сейчас пользуемся следующим кодом: Код: javascript 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2012, 06:45 |
|
Положение полосы прокрутки в tablePane
|
|||
---|---|---|---|
#18+
Аленочка, 1. Перед рефрешем таблицы сохраняем в СТРАНИЧНУЮ переменную выбранную строку, примерно так: zenPage.lastSelectedIndex = zen('table').selectedIndex * Тут лучше использовать массив (чтобы для всех таблиц), но ЛЕНЬ ;) 2. "Таким образом следовательно", при обновлении таблицы работаем примерно так: zenPage.lastSelectedIndex = zen('table').selectedIndex а уж потом(!) zen('table').executeQuery() 3. А на таблицу вешаем onrefresh="zen('table').selectRow(zenPage.lastSelectedIndex,true);" ВУАЛЯ! Результат гарантированн! И никаких zenSynchronousMode брррр... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 14:35 |
|
|
start [/forum/topic.php?fid=39&msg=38022696&tid=1557252]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 382ms |
0 / 0 |