0

Scrollbar in Listbox moves to last selected item

asked 欢乐生肖怎么回血哪里可以玩欢乐生肖欢乐生肖群苹果信用卡将在下月初面世

發布時間︰

《傅雷之死》-葉永烈欢乐生肖怎么回血 已經完全無拘無束地參加到談話中去了。 兩個僕人又一次把珍饈美味端上桌來,這些佳肴我過去只在別人談天說哪里可以玩欢乐生肖 開了這幢悲慘的房子,脈搏跳得飛快。 他一直呆呆地望著他那籟籟直抖的手用糖鉗在桌上憑空畫出的幻想圖 像。突然他像吃了一驚,叮當一響把糖鉗放到桌上。仿佛他驀然驚醒,這時 才意識到,他不是單身獨處,而是和一個素昧平生的陌生人在談話。于是他 用另外一種聲音,清醒而又壓抑的聲音,頗為笨拙地表示歉意︰欢乐生肖群 車上放著豐盛精美的茶點。她斟完咖啡,就在我們身邊坐下,我馬上又覺得 踏實多了。一頭肥碩的安哥拉母貓悄無聲息地跟著茶車溜進屋來,這會兒大 模大樣親親熱熱地在我腿上蹭來蹭去,這貓可給我提供了很好的話題。我連 連贊賞這只大貓,接著她們便開始東問西問,問我在這兒多久了,在這個駐 地覺得怎麼樣,我是否認得某某少尉,是否經常上維也納去。無意之中我們 就輕松隨便地聊起家常來了,原來那陣討厭的緊張空氣不知不覺地隨之消 散。我漸漸地甚至敢于稍稍從側面端詳一下這兩個姑娘。她們兩個長得完全 下一樣,伊羅娜已經完全是個成熟的女性,肉感柔媚,豐腴健美;和她相比 艾迪特半似孩子,半似少女,大約十七歲光景,也許已經十八歲,反正還沒 有怎麼長足。兩人形成奇怪的對比︰你跟這個姑娘在一起,只想跟她跳舞, 親吻;而另一個姑娘呢,你只想把她當作病人一樣地疼她,只想輕輕地撫摸 她,保護她,尤其想安慰安慰她。因為從她身上散發出一種奇怪的焦灼不安 的情緒。她的神色幾乎一刻也不平靜;她不時地左顧右盼,一會兒直坐起來, 一會兒又頹然向後靠去;她說話也和她的動作一樣神經質,總是突然迸發, 總是 staccato?,永遠沒有間歇。我心想,她這樣控制不住自己,這樣煩躁 不安,說不定是對她的雙腿被迫不能活動的一種補償,也說不定是一種經常 不退的輕微的寒熱,使她的手勢和說話的語流節奏都更加急促。可是我沒有 多少時間來仔細觀察。因為她善于用她連珠炮似的提問和她輕快飄逸的敘述 方式把人們的注意力完全吸引到她身上。我完全出乎意料地卷進了一場使人 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