2010-04-09 40 views
0

我是grails/extjs的新手我正在爲我的團隊開發基於web的配置工具。我的問題是使用extjs的組合框我有三個遠程comboxes(多對一休眠mappng )。我使用hiddenName來提交它的值字段(這是數據庫的id初級關鍵字),而不是它的顯示字段,它是我通過將其呈現爲json.some而得到的名稱。我如何看到如果我選擇比其他從數據庫中加載並嘗試更新它。它絕對將它作爲參數發送,但在保存grails方法中未更新。使用grails控制器無法保存extjs組合使用grails控制器不能保存extjs組合

我想明白爲什麼? 我已經粘貼了組合框和grails方法的片段?

{ 
      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}, 

GRAILS SAVE

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) 
    } 
} 

我真的apperciate任何幫助

回答

0

你有沒有在你的POST看起來像你所期望的Firebug控制檯選項卡驗證?這將確認您的問題是否在客戶端或服務器上。