2012-07-06 79 views
0

我正在使用Grails設置JqGrid並進行內聯編輯工作。當用戶選擇特定的單元格時,會出現一個下拉框。帶有JqGrid內聯編輯的Grails(使用List)()

我想從表中填充此下拉列表,但無法將各個部分連接在一起。下面是代碼,我有那麼遠,

$(document).ready(function() { 

    jQuery("#task_list").jqGrid({ 
      ... 

      colModel:[ 
      {name:'foo', editable:true, edittype:'select', editOptions:{values: ${com.project.inf.Domain.list()}}}, 
      ... 

的$ {com.project.inf.Domain.list()}創建逗號分隔的項目,我想顯示爲選項列表在下拉菜單中。但是,似乎editOptions只接受名稱:值對。有沒有簡單的方法來重新格式化List()以便它被接受?

感謝您的幫助!

回答

0

教程一些實驗和閱讀後,我找到了解決這個問題的辦法。我不得不創建一個定製的控制器動作,並使用「dataUrl」選項,使用它,如下所示:

{name:'foo', width:100, editable:true, edittype:'select', 
editoptions: {dataUrl:'${createLink(controller:"bar",action:"listAsSelect")}'}} 

隨着出發,按照「扎」控制器listAsSelect行動:

def listAsSelect={ 
    def lst = Bar.findAll() 

    StringBuffer buf = new StringBuffer("<select>") 
    lst.each{ 
     buf.append("<option value=\"${it.id}\">") 
     buf.append(it.toString()) 
     buf.append("</option>") 
    } 
    buf.append("</select>") 

    render buf.toString() 
} 
0

喲LOresolvíASI:

檢視:

{名稱: 'listaDinamica',寬度:90,編輯:真, editrules:必需的:真},edittype: '選擇',

editoptions:{值: '$ {slcustomer}'}},

控制器:

類TablaModeloController {

TablaModeloService tms=new TablaModeloService() 
def slcustomer= tms.llenaClientes() 
def sl=Customer.list() 

def index() {} 

...

服務:

類TablaModeloService {

DEF llenaClientes(){

DEF clientes = ''

Customer.list()。each {

clientes + = it.id +「:」+ it.firstName +「;」

}

clientes = clientes [0 ..- 2]

返回clientes }

}

Trabaja PERFECTO