0

Scrollbar in Listbox moves to last selected item

asked 青青草在线视频青青草在线视频网站一本道久在线综合色色荀玉根:牛市第二波上涨蓄势待发 耐心布局

發布時間︰

把衣領高高豎起,打算快步越過這寬闊的廣場。可是正在這時暴風雨變得加 倍地狂暴,狂風挾著暴雨向我劈頭蓋腦地襲來。所以寧可在一所屋子的門洞 里等上凡分鐘,不忙跑過兩個小巷趕到軍營里去。那個咖啡館說不定還沒關 門,我可以在那里安安穩穩地坐到老天爺把他最大的噴水壺倒光為止。距離 咖啡館不過隔著六幢房子,瞧,在那模模糊糊的玻璃窗後面還閃爍著昏黃的 煤氣燈光。我的伙伴們還都坐在他們的老位置上。這可是恢復老交情的絕妙 機會,因為我早就該在他們當中露露面了。昨天,前天,整整這一個星期加 上上個星期我都沒上咖啡館。他們其實完全有充分的理由生我的氣。我既然 已經對朋友不忠了,那麼至少在禮節上要過得去。 又端上來精美的夜宵,味道絕佳的夾肉面包,奇怪的是不僅我一個人狼吞虎 咽,兩個姑娘也大嚼一氣,那美味濃烈、黑里透紅的陳年英國紅葡萄酒她們 也開懷暢飲。可是最後畢竟得告辭。艾迪特和伊羅娜和我握手,仿佛我是個 老朋友,是個親愛的、可靠的伙伴。不用說,我得答應她們不久再來,明天 就來,要不然就後天。然後我和其他三位男客一同走到前廳。主人要派汽車 送我們回家。我自己取下我的外套,這時僕人則忙著幫中校穿大衣。突然, 我覺得有人在我披外套時想幫助我︰這是封?開克斯法爾伐先生,我大吃一 驚,極力推讓,(我怎麼能讓他幫我的忙呢?我這毛頭小伙子讓一位老先生 幫忙?)他卻硬要幫我,一面低聲耳語︰青青草在线视频 聲說給她听,因為這時候,她的目光突然嚴厲起來︰我當時心情激動,神氣 想必一定很令人同情,或者很叫人害怕。我心跳不已地把發生的事情一五一 十地都告訴了她。奇怪的是,她的眼楮里也像屋里那個姑娘的眼楮,流露出 同樣強烈的驚恐。她向我厲聲斥責︰青青草在线视频网站 最後,我在外面轉了一圈,從另一側又回到鐵欄柵的門前,終于下了決 心。我穿過碎石路走到屋門口,路的兩邊是兩行樹木,修剪得筆直高聳。我 敲了一下門上一個沉重的包著青銅的木槌,按照古老的風俗,這是代替門鈴 的。僕人應聲開門。奇怪的是,他對我沒有預先通報、徑自來訪絲毫不表示 驚訝。他並不多問,也沒接過我早已準備好的名片,就向我彬彬有禮地鞠一 躬,請我到客廳里稍候,兩位小姐還在自己房間里,不過她們馬上就來。這 麼說,我將受到她們接待,這一點是毫無疑問的了。他把我當作一個預先通 報過的客人那樣,一直帶我往屋里走。我一眼認出當時跳過舞的那個紅綢裱 糊的客廳,心里又重新感到極不自在。嗓子眼里那股苦澀的滋味使我想起, 隔壁想必就是那個房間了。發生那場災難的角落就在那間房里。 下腰去在姑娘的額上輕輕地吻了一下。他穿的還是那件帶白胸衣的黑外套, 領結也是老式的(我從來沒有看見他有過別的裝束);他那副金絲邊眼鏡後 面那雙仔細觀察的眼楮使他看上去活像個醫生;他也的確像個醫生坐在病人 的床邊一樣,小心翼翼地坐到那個癱瘓姑娘的身邊。說也奇怪,自從他進來 的那一瞬起,房間里似乎籠罩了一層更加憂郁的陰影。他有時溫情脈脈地帶 著審視的目光從旁看他女兒一眼,這種戰戰兢兢的樣子使我們一直無拘無束 的談話節奏受到阻礙、受到限制。過一會兒,他自己也感覺到我們的拘謹, 便自己設法勉強找出些話題來談。他也同樣問我團里的情況如何,問起騎兵 上尉,向我打听從前的那位上校,據說他現在在陸軍部里當師長。使人驚訝 的是,他似乎對多年來我們團里的人事狀況了如指掌。我不知道為什麼,但 是我有這種感覺,他提到每一個高級軍官總是出于一定的目的,特別強調他 和他們特別熟悉。一本道久在线综合色色 “請坐,請坐,”我正想恭恭敬敬地站起身來,他一把按住我,然後彎 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