0

我正在使用 Grails 设置 JqGrid 并进行内联编辑。当用户选择特定单元格时,会出现一个下拉框。

我想从表格中填充此下拉列表,但无法将各个部分连接在一起。这是我到目前为止的代码......

$(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() 以使其被接受?

谢谢您的帮助!

4

2 回答 2

0

Yo lo resolví asi:

看法:

{name:'listaDinamica',width:90, editable: true, editrules:required:true},edittype:'select',

编辑选项:{值:'${slcustomer}'}},

控制器:

类 TablaModeloController {

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

def index() {}

...

服务:

类 TablaModeloService {

    def llenaClientes(){

        定义客户=''

            Customer.list().each{

            客户+=it.id+":"+it.firstName+";"

        }

        客户=客户[0..-2]

        返回客户 }

}

完美的特拉巴哈

于 2012-07-09T16:54:11.147 回答
0

经过一些实验和阅读教程,我找到了解决这个问题的方法。我必须创建一个自定义控制器操作并使用“dataUrl”选项来使用它,如下所示:

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

将以下内容作为“bar”控制器中的 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()
}
于 2012-07-24T20:52:25.263 回答