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 は name:value ペアのみを受け入れるようです。受け入れられるように List() を再フォーマットする簡単な方法はありますか?

助けてくれてありがとう!

4

2 に答える 2

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()
}
于 2012-07-24T20:52:25.263 に答える
0

解決策:

意見:

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

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

コントローラ:

クラス TablaModeloController {

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

def index() {}

...

サービス:

クラス TablaModeloService {

    デフllenaClientes(){

        def clientes=''

            Customer.list().each{

            clientes+=it.id+":"+it.firstName+";"

        }

        クライアント=クライアント[0..-2]

        クライアントを返す}

}

トラバハ・パーフェクト

于 2012-07-09T16:54:11.147 に答える