0

Scrollbar in Listbox moves to last selected item

asked 思思热99re热在线视频久久精品视频在线看9999久久re6热精品首页侠客岛:外国留学生妨碍公务可“批评教育”了事?

發布時間︰

-品格思思热99re热在线视频 久久精品视频在线看99 不言而喻,大家都一致反對我,因為在實踐中屢試不爽的是,人們自我麻醉的欲望想要擺脫內 心深處明明已經意識到的種種危險,最喜歡采用的辦法總是竭力否認這些危險。再說隔壁房間里已經 擺好了豐盛的晚餐,我的這種警告踫到廉價的樂觀主義,听上去當然很不討人喜歡。 于是我振作起來,僕人在我前面把向兩邊滑動的門一打開,我就邁步走 到餐廳的門檻上,使勁腳後跟一並,立正鞠躬。大家全部抬頭看我,有十雙、 二十雙眼楮,全是陌生的眼楮,在打量著這個站在兩個門柱之間、舉止有些 局促的遲到客人。立刻有個歲數比較大的紳士站起身來,準是主人無疑,他 很快地摘下身上的餐巾,朝我走來,伸手給我表示歡迎。這位封?開克斯法 爾伐先生絲毫不像我設想的鄉間貴族那樣,蓄著馬扎兒?式的口髭,長得肥頭 胖耳,喝多了名酒佳釀,所以面頰發紅,皮肉松弛。他戴著一副金絲邊眼鏡, 眼鏡後面在灰白的淚囊上面一雙模糊的眼楮,多少有些疲勞的神氣;兩個肩 膀有點向前拱起,嗓音微弱,听上去像在耳語,有時還輕輕地咳嗽幾聲;一 張臉輪廓狹長,皮膚細嫩,頷下是一部稀疏的小山羊式白胡子,他更容易被 人看成一位學者。這位老先生表示出來的特別殷勤好客的神氣,對我內心的 慌亂起了十分良好的鎮靜作用︰他馬上槍過我的話頭說,哪里哪里,應該道 歉的是他,他很了解,值勤的時候是什麼事情都會發生的。我還特地派人通 知他,這實在是特別客氣的表示;實在是因為大家都吃不準我究竟是不是會 來,這才開始入席就餐的。可是現在我不能耽誤時間,得馬上人座。待會兒 他再為我逐一介紹在座的女士先生們。就這位——說著他把我領到桌邊—— 是他的女兒。這是一個身量未足的姑娘,肌膚嬌嫩,臉色蒼白,像他一樣縴 細文弱。她正在跟人談話,這時抬起頭來,兩只灰色的眸子怯生生地掃了我 一眼。可我在匆忙之中,只看見了一張嬌小的、神經質的臉,我先向她鞠了 一躬,然後向左右兩邊其余的人籠統地彎腰致意。他們用不著放下手中的刀 叉,不必受繁文縟節的介紹儀式的打擾,顯然十分高興。99久久re6热精品首页 2019-07-29 16:02:29 +0800

anvibb gravatar image anvibb
3 1

Hi, guys! I have some trouble with scrollbar in the Listbox component - when I set the model to it and selecting several listitems, the scrollbar moves down to the last selected item, but I need to keep it on top. We've used simple zul as a view:

<zk>
<window xmlns="http: //www.zkoss.org/2005/zul" xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http: //www.zkoss.org/2005/zul http: //www.zkoss.org/2005/zul/zul.xsd"
        use="com.otr.sufd.zkossforms.table.SetDocColumnsView"
        closable="true" border="normal" title="Customize columns" ctrlKeys="" height="400px" width="300px">
    <borderlayout width="100%" height="100%">
        <center>
            <listbox id="table" checkmark="true" vflex="true" fixedLayout="true" multiple="true" width="100%">
                <listhead>
                    <listheader align="left">Column title</listheader>
                </listhead>
            </listbox>
        </center>

        <south size="36" autoscroll="true">
            <toolbar align="end">
                <button label="OK" id="okButton" height="24px" width="75px" mold="os"/>
                <button label="Reset" id="resetButton" height="24px" width="75px"/>
                <button label="Cancel" id="cancelButton" height="24px" width="75px" mold="os"/>
            </toolbar>
        </south>
    </borderlayout>
</window>

</zk>

In SetDocColumnsView I filled Listbox by model and make some AfterCompose actions:

public void configureView(List<? extends HeaderElement> columns, Set<String> hiddenIds) {
    setSizable(true);

    final ListModelList tableModel = new ListModelList(columns);
    tableModel.setMultiple(true);
    table.setModel(tableModel);
    table.renderAll();
    for (int i = 0; i < columns.size(); i++) {
        final HeaderElement column = columns.get(i);
        if (column != null) {
            final Listitem listitem = table.getItemAtIndex(i);
            listitem.setLabel(column.getLabel());
            final String columnId = column.getId();
            listitem.setValue(columnId);
            listitem.setSelected(!hiddenIds.contains(columnId));
        }
    }
}
@Override
public void afterCompose() {
    table = (Listbox) getFellow("table");
    final Button okButton = (Button) getFellow("okButton");
    //adds some listeners to buttons
    addForward(Events.ON_OK, okButton, Events.ON_CLICK);
    addForward(Events.ON_CANCEL, cancelButton, Events.ON_CLICK);
    okButton.setFocus(true);
}

And then I show the dialog window by this code:

final SetDocColumnsView dialog = UIUtils.loadComponent(SetDocColumnsView.getUrl());
dialog.configureView(columnList, hiddenIds);
dialog.setPage(getPage());
dialog.doHighlighted();

I've tried to use some advice given in other threads, such as:

Clients.scrollIntoView(table.getItemAtIndex(0))

or call JS function inside my configureView method:

Clients.evalJavaScript("zk.Widget.$('" + dialog.table.getUuid() + "')._scrollToIndex(0);")

or keep all listitems what I need to select in a different Set and post to setSelectedItems method of Listbox, but everything is without success. Also, I've tried to debug a JS function _doScroll in Listbox.js but I don't figure out from where it has been called :(

I will be very appreciated if someone can help me with this problem.

Best regards, Roman

delete flag offensive retag edit

Comments

if your example is simple, please paste it into http://zkfiddle.org/ so that anyone can have a look directly, this increases your chances of getting a response quickly

cor3000 ( 2019-07-29 18:30:05 +0800 )edit

Yeah, I made simple zkfiddle example - http://zkfiddle.org/sample/1a44bo/1-scrollbar-in-listbox-moves-to-last-selected-item which reproduces the problem

anvibb ( 2019-07-30 21:16:58 +0800 )edit

4 Answers

0

answered 2019-08-01 09:12:39 +0800

hawk gravatar image hawk
2415 1 5
http://hawkphoenix.blogsp... ZK Team

Thanks for the zkfiddle example. Remove renderAll() can solve scrolling position issue. Listbox by default will render necessary Listitem for visible range, you don't need to call renderAll() which will enforce rendering all Listitems which is unnecessary for most cases. Please refer to http://zkfiddle.org/sample/1a44bo/2-scrollbar-in-listbox-moves-to-last-selected-item#source-2

link publish delete flag offensive edit
0
link publish delete flag offensive edit
0

answered 2019-07-31 21:05:33 +0800

anvibb gravatar image anvibb
3 1

updated 2019-08-01 09:01:48 +0800

hawk gravatar image hawk
2415 1 5
http://hawkphoenix.blogsp... ZK Team

Thank you for the response, hawk!

I tried to change the selection of items as you advised, but it doesn't solve my problem - when I select several items via ListModeList.setSelection, the scrollbar moves down to the last item. I made an example of that behavior in zkfiddle - http://zkfiddle.org/sample/1a44bo/1-scrollbar-in-listbox-moves-to-last-selected-item

link publish delete flag offensive edit
0

answered 2019-08-01 17:45:43 +0800

anvibb gravatar image anvibb
3 1

Removing renderAll() is helped!

Thank you so much!

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2019-07-29 16:02:29 +0800

Seen: 12 times

Last updated: Aug 01

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More