0

私は grails/extjs の初心者です。チーム用に Web ベースの構成ツールを開発しています。私の問題は extjs のコンボボックスにあります。これはデータベースの id primay キーです) json.some としてレンダリングすることによって取得される名前である表示フィールドの代わりに、db からロードされたもの以外の diff インデックスを選択して更新しようとすると、どのように表示されるかがわかります。それは間違いなく送信しますそれはparamsですが、grailsのsaveメソッドでは更新されていません。

理解したい なぜ?コンボボックスとグレイルメソッドの両方のスニペットを貼り付けましたか?

{
           xtype : 'combo',
           id:'cpsServerid',
           fieldLabel : 'CpsServer',
           name : 'cpsServer',
            //hiddenId:'cpsID',
            hiddenName:'cpsID',
               store: cpsServerStore,
            displayField:'NAME',
            valueField:'ID',
            editable:true,
            typeAhead:true,
            mode:'remote',
            triggerAction:'all',
                  width:300,
            autoScroll:true,
            selected:name,
            selectOnFocus:true},

グレイルセーブ

 def saveApplicationSubscription = {
         println "saveApplicationSubscription, params = $params"
         ApplicationSubscription subscription 

  if (params.id) {
           subscription  =  ApplicationSubscription.get(params.id as int)
           subscription.cpsServer = CpsServer.get(params.cpsID as int)
           subscription.topic =  params.topic
              subscription.description = params.description
              subscription.subscriberApplication = SubscriberApplication.get(params.subAppID as int)
              subscription.outputQueue = OutputQueue.get(params.outputID as int)
              bindData(subscription , params)
        }
   else {
           params.id = 0
           subscription = new ApplicationSubscription(params)
           subscription.id = params.id as int 
           subscription.cpsServer = CpsServer.get(params.cpsID as int )
           subscription.topic =  params.topic
           subscription.description = params.description
           subscription.subscriberApplication = SubscriberApplication.get(params.subAppID as int)
           subscription.outputQueue = OutputQueue.get(params.outputID as int)
         //  subscription.messageFormat = params.messageFormat


       }
if (subscription.save()) {

         log.info("Saved ApplicationSubscription $subscription")
         render([success: true] as JSON)

     }
     else {
         log.info("Failed to save ApplicationSubscription $subscription, errors = ${subscription.errors}")
         render([success: false, errors: subscription.errors] as JSON)
     }
 }

私は本当にどんな助けにも感謝します

4

1 に答える 1

0

[Firebugコンソール]タブで、POSTが期待どおりに表示されることを確認しましたか?これにより、問題がクライアントまたはサーバーにあるかどうかが確認されます。

于 2010-04-09T16:14:15.497 に答える