xPages radiobutton group onchange事件不起作用

时间:2016-10-14 19:22:42

标签: javascript xpages

这是我的简单页面,它是一个列表框控件,应根据radiobutton组选择刷新其值。列表框使用范围变量数组作为源。所以,当我点击radiobutton时,我想更改列表框值。它在第一次/第二次点击后工作,然后它不刷新列表框然后再次工作。我做错了什么?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

<xp:this.beforePageLoad><![CDATA[#{javascript:viewScope.MYARRAY = new Array();
viewScope.MYARRAY.push(["NAME1", "ID1"]);
viewScope.MYARRAY.push(["NAME2", "ID3"]);
viewScope.MYARRAY.push(["NAME3", "ID4"]);
viewScope.MYARRAY.push(["NAME4", "ID5"]);}]]>
</xp:this.beforePageLoad>

<xp:radioGroup id="radioGroupSortBy" defaultValue="0">
    <xp:selectItem itemLabel="by Name" itemValue="0"></xp:selectItem>
    <xp:selectItem itemLabel="by Id" itemValue="1"></xp:selectItem>
        <xp:eventHandler event="onchange" submit="true"
            refreshMode="partial" refreshId="listBox1">
        </xp:eventHandler>
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial" refreshId="listBox1">
        </xp:eventHandler>
</xp:radioGroup>

<xp:listBox id="listBox1" style="width:390.0px;height:166.0px">
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:var arr = new Array();
            for(var i=0; i<viewScope.MYARRAY.length; i++){
                if(getComponent("radioGroupSortBy").getValue()==0){
                    arr.push(viewScope.MYARRAY[i][0] + " - " + viewScope.MYARRAY[i][1]);
                } else {
                    arr.push(viewScope.MYARRAY[i][1] + " - " + viewScope.MYARRAY[i][0]);
                }
            }
            return arr.sort();}]]>
        </xp:this.value>
    </xp:selectItems>
</xp:listBox>
</xp:view>

2 个答案:

答案 0 :(得分:1)

如果您单击电台This is an onClick partial refresh bug with radio buttons本身,您的示例确实有效,但如果您点击标签,则“点击太晚”。

{{3}}

将以下CCJS代码添加到onClick事件:

mux = pd.MultiIndex.from_product([df.index.get_level_values('G').unique(), 
                                  np.arange(1,6)], names=('G','A'))

df = df.reindex(mux)
df.C = df.C.ffill()

df = df.reset_index(level=0, drop=True).reset_index()
print (df)
    A      B    C
0   1    1.0  Feb
1   2    8.0  Feb
2   3    NaN  Feb
3   4   64.0  Feb
4   5  125.0  Feb
5   1    0.0  Feb
6   2    NaN  Feb
7   3    6.0  Feb
8   4   16.0  Feb
9   5   31.0  Feb
10  1   -3.0  Feb
11  2    NaN  Feb
12  3    4.0  Feb
13  4   18.0  Feb
14  5   29.0  Feb

答案 1 :(得分:0)

某些浏览器(IE)的单选按钮事件可能很奇怪。你的xsp属性文件中有这个设置吗?

http://www-01.ibm.com/support/docview.wss?uid=swg21631834

不要同时使用onclick和更改。

霍华德