ZK框架中的Combobox问题

时间:2013-03-04 12:22:59

标签: combobox zk zul

当我点击组合框时,选项会在此组合框下面打开

当我在鼠标滚动条的帮助下滚动窗口时,窗口向下滚动,但组合框选项出现在同一个地方。此组合框下方的选项值显示在中间名称

下方

在此处查看详细信息Click here

小提琴示例here

2 个答案:

答案 0 :(得分:1)

这似乎是一个已知问题(see tracker),目前您需要自己同步该位置。

如,

<zk>
    <script><![CDATA[
        function addSyncScroll (wgtId, parentId, add) {
            var wgt = zk.Widget.$('#'+wgtId),
                parentWgt = zk.Widget.$('#'+parentId);
            if (wgt && parentWgt) {
                var cbxToSync = parentWgt._cbxToSync,
                    idx;
                if (!cbxToSync) {
                    initSyncScroll(parentWgt);
                }
                cbxToSync = parentWgt._cbxToSync;

                if (cbxToSync) {
                    if (!wgt._syncPopupScroll) {
                        wgt._syncPopupScroll = function () {
                            zk(wgt.getPopupNode_()).position(wgt.getInputNode(), "after_start");
                        }
                    }
                    if (add) {
                        if (cbxToSync.indexOf(wgt) < 0)
                            cbxToSync.push(wgt);
                    } else {
                        if ((idx = cbxToSync.indexOf(wgt) < 0) > -1) {
                            cbxToSync.splice(idx, 1);
                        }
                    }
                }
            }
        }
        function initSyncScroll (parentWgt) {
            parentWgt._cbxToSync = [];
            parentWgt.$n().onscroll = function (event) {
                var cbxToSync = parentWgt._cbxToSync;
                for (var i = 0; i < cbxToSync.length; i++) {
                    cbxToSync[i]._syncPopupScroll();
                }
            }
        }
    ]]></script>
    <div width="200px" height="300px">
        <div id="parent" width="100%" vflex="1" style="overflow:auto;">
            <label value="Some text" />
            <textbox value="01" />
            <textbox value="02" />
            <textbox value="03" />
            <combobox>
                <attribute name="onOpen"><![CDATA[
                    Clients.evalJavaScript("addSyncScroll('"+self.getUuid()+"', '"+parent.getUuid()+"', "+self.isOpen()+")");
                ]]></attribute>
                <comboitem label="Simple and Rich" />
                <comboitem label="Cool!" />
                <comboitem label="Ajax and RIA" />
            </combobox>
            <textbox value="04" />
            <textbox value="05" />
            <textbox value="06" />
            <textbox value="07" />
            <textbox value="08" />
            <textbox value="09" />
            <textbox value="10" />
            <textbox value="11" />
            <textbox value="12" />
            <textbox value="13" />
            <textbox value="14" />
            <textbox value="15" />
        </div>
    </div>

</zk>

答案 1 :(得分:1)

这是ZK中的已知问题,您可以在此处查看ZK Issue trcker

可能需要一些时间,在未来的版本中,我们会得到一些解决方法,根据@Ben,它将在未来得到解决。