2012-06-25 3 views
0

테이블의 각 행에 ajaxRadio가 있습니다. 이 라디오를 선택하면 두 개의 매개 변수를 얻으려는 스칼라 함수가 필요합니다. 첫 번째 라디오가 선택된 라디오이고 두 번째 라디오 버튼이 행의 데이터 키입니다. 다음과 같이 내 소스는 다음과 같습니다스칼라 리프트 : ajaxRadio 매개 변수를 얻는 방법

val radioList = List("wideArea", "oldArea","newArea") 
def liftForm(xhtml: NodeSeq): NodeSeq = { 
    var areaList = newOrderList.map(values =>{ 
     <li id={values(1)} > 
      <table> 
       <thead></thead> 
       <tbody> 
        <tr class = "real"> 
         <td class="listImage"> 
          <img class="areaImage" src={values(6)}/> 
         </td> 
         <td style="vertical-align:top;"> 
          <tr><p class="areaName">{values(4)}</p></tr> 
          <tr><p class="areaComment">{values(5)}</p></tr> 
         </td> 
         <td class="listCheck" > 
          {ajaxButton(S.?("delete"),() => doDelete(values(1)), "class" -> "button delete")} 
         </td> 
        </tr>  
        <tr> 
         <td></td> 
         <td> 
          { 
          val it = ajaxRadio[String](radioList,Box.legacyNullTest(values(2)),doRadioChange _).toForm.grouped(4) 
          for(i <- it)yield(<tr>{i.flatMap(y => <td> {y} </td>)}</tr>) 
          } 
         </td> 
        </tr>     
       </tbody> 
      </table> 
     </li>}) 


    bind("list",xhtml,"areaList" -> <ul>{areaList}</ul>) 

doRadioChange _으로, 나는 단지 라디오를 선택할 수 있습니다. 어떻게 두 번째 매개 변수를 얻을 수 있습니다 : 행의 데이터 키. 즉 values(1)?

답변

1

함수는 함수의 해당 지점에서 모든 로컬 상태를 닫을 수 있습니다. 당신과 doRadioChange _을 대체 할 수 있어야한다 :

doRadioChange(_, values(1)) 

doRadioChange가 적절한 매개 변수를 받아들이는 물론, 가정.

관련 문제