2012-06-25 3 views
0

У меня есть ajaxRadio ineach строка таблицы. , когда это радио выбрано, я хочу, чтобы функция scala получала два параметра: Первый - это выбранное радио, второе - это ключ данных строки. мой источник выглядит следующим образом:Scala Lift: как получить параметры 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 принимает соответствующие параметры.

Смежные вопросы