0

Scrollbar in Listbox moves to last selected item

asked 贵州快3形态走势图一定牛欢乐生肖手机开奖欢乐生肖后二计划全球富豪投资新选项:林业资产

發布時間︰

“是的,如果她的病治好了,那自然??那我就會??就會親自到府上 去。” 開克斯法爾伐把“他”字一說出口,我頓時感到渾身冰涼。他向我這樣 暗示他女兒的感情,這還是第一次。很久以來我就已經發現,他顯然在回避 我,是啊,他簡直不敢正眼看我,而他先前是多麼溫柔多麼急切地爭取我啊! 可是我知道,使他和我疏遠的原因是羞愧。眼睜睜地看著自己的女兒在追求 一個男子,而此人卻從她身邊逃走,這對于這位老人想必是十分可怕的事情。 她內心的秘密自白想必使老人受盡了折磨,而她那毫不掩飾的欲望想必使他 無地自容。他和我一樣,也失去了落落大方的態度。誰要是掩飾什麼或者不 得不掩飾什麼,他的目光就不會坦然直率、自由無羈。贵州快3形态走势图一定牛 “請您現在別耽擱他了,”她低聲耳語,“別跟他說什麼!他一定累壞 了,整天都在外頭跑??請您照顧照顧他,請您同情??”欢乐生肖手机开奖 于擺脫我們!他大概還特意買了一個日歷,上面用紅筆標上記號︰假日,我 們出發的日子!不過您可得注意!一個人有時候也會完全算錯的。哈!三天 半,三個整天,一個半天,一個半天,一個半天??” “封?開克斯法爾伐先生,請您別誤會我的意思??您千萬不能這樣走欢乐生肖后二计划 這電話亭里的確這麼熱嗎?我像一個即將窒息的人,一下打開那扇加了 一層軟墊的門,步履沉重地回到我的座位上。大家似乎並沒有注意到我剛才 起立走開。其余的人還在和施泰因許貝激烈爭論並且揶揄他。在我這張空椅 子旁邊,站著勤務兵,手里拿著盛烤肉的大盤,耐心地等候。為了趕快把勤 務兵打發走,我機械地夾了兩三片肉,放在我的盤子里,但是我動也不動我 的刀叉,因為我的兩個太陽穴之間開始響起一陣猛烈的滴答滴答聲,就像有 把小鐵錘無情地把“推遲!行期推遲!”這幾個字鑿在我的骨頭里。這里面 準有個原因,肯定發生了什麼事。莫非她得了重病?難道我得罪了她?她為 什麼突然一下子不想走了呢?康多爾不是答應我,只要堅持八天就行了嗎, 我已經熬過五天了??不過我不能堅持更久了??我實在受不了啦! 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