2014-10-21 2 views

답변

4

당신은 목록 상자 구성 요소의 setSelectedValues() 방법을 사용할 수 있으며, 합격 : 이 확인란이 선택되어 있으면 내가 사용하는 참조하십시오 [ "value1", "value2", "value3"]. 체크 박스의 onChange 이벤트에 이것을 넣고 목록 상자를 부분적으로 새로 고침하면 원하는 것을 할 수 있습니다.

SSJS에서 목록 상자 값을 하드 코딩하지 않고 목록 상자에서 사용 가능한 값을 가져 오려면 XSnippet by Sven Hasselbach을 확인하십시오. 이 스 니펫을 사용하여 아래 예를 만들었습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
<xp:checkBox text="Select All" id="checkBox1"> 
    <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="listBox1"> 
     <xp:this.action> 
      <![CDATA[#{javascript: 
       //Get the listbox component 
       var listbox = getComponent('listBox1'); 
       if (getComponent('checkBox1').getValue() == "true") { 
        //Checkbox is checked 
        //Get an iterator for the items in the listbox    
        var childrenList:java.util.ListIterator; 
        childrenList = listbox.getChildren().listIterator(); 

        //Generate the array of items 
        var itemList = []; 
        while (childrenList.hasNext()) { 
         var child = childrenList.next(); 
         itemList.push(child.getItemValue()); 
        } 

        //Set the selectedValues of the listbox 
        listbox.setSelectedValues(itemList); 
       }else if(getComponent('checkBox1').getValue() == "false") { 
        //Checkbox is unchecked 
        //Set listbox to have no selections, empty array 
        listbox.setSelectedValues([]); 
       } 
      }]]> 
     </xp:this.action> 
    </xp:eventHandler> 
</xp:checkBox> 
<xp:br /> 
<xp:listBox id="listBox1" multiple="true" style="height:200px;width:150px"> 
    <xp:selectItem itemLabel="value1" itemValue="value1"></xp:selectItem> 
    <xp:selectItem itemLabel="value2" itemValue="value2"></xp:selectItem> 
    <xp:selectItem itemLabel="value3" itemValue="value3"></xp:selectItem> 
    <xp:selectItem itemLabel="value4" itemValue="value4"></xp:selectItem> 
    <xp:selectItem itemLabel="value5" itemValue="value5"></xp:selectItem> 
</xp:listBox> 
</xp:view> 
+0

이것이 내가 원하는 것입니다. 나는 최종 사용자를 위해 이것을하고있다. 목록 상자의 모든 항목을 수동으로 선택하는 것보다 확인란을 선택하는 것이 더 빠릅니다 (많은 항목이있는 경우). –

관련 문제