0

gsp内のドメインクラスプロパティを変更するために使用されるメソッドは何ですか?

元:

ドメインクラスプロジェクトには、date型のdueDateがあります。gsp内で、タグを使用せずに日付を設定したい理由は、jqueryのdatepickerを使用しているためです。これは、mm / dd / yyyyの醜いドロップダウンの代わりに、クリックするための小さなカレンダーがあるためです。の上。誰でも、何かアイデアはありますか?

よろしくお願いします:D:D:D

4

3 に答える 3

1

そうですね、GrailsはMVCパターンを使用しているため、GSPページ内のドメインクラスプロパティを直接変更しないでください。

もちろん、JQueryの日付ピッカーを使用することもできますが、ドメインクラスのプロパティを更新するためのコントローラーアクションを提供する必要があります

def updateDateUsingAjax() {
  def domain = MyDomain.load(params.id)

  /*
  Lets pretend the content of params.date has the format MM/dd/yyyy  
  You can use Date.parse method of the Groovy JDK to create a java.util.Date instance of a String. 
  http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#parse(java.lang.String, java.lang.String)
  */

  domain.myDate = Date.parse('MM/dd/yyyy', params.date)

  domain.save()
}

これで、作成する必要があるのは、このコントローラーアクションへのAjax呼び出しだけで、プレゼンテーション層をアプリケーションの他の部分から正常に分離できました。

そして、これがあなたのGSPがどのように見えるかです。

<!doctype html>
<html>
<head>
    <meta name="layout" content="main"/>
    <title>Welcome to Grails</title>
    <r:require module="jquery-ui"/>
</head>
<body>
<div>
    <g:formRemote name="myForm" url="[controller: 'standard', action: 'updateDateUsingAjax']" onSuccess="showDialog()">
        <p>Your date: <g:textField name="pick"/> </p>
        <p><g:hiddenField name="id" value="your id"/></p>
        <input type="submit" value="Delete Book!" />
    </g:formRemote>

</div>

<div id="dialog" title="Success" style="display:none;">
    <p>You have successfully updated your date</p>
</div>

<script type="text/javascript">
    $(document).ready(function()
    {
        $("#pick").datepicker({dateFormat: 'yy/mm/dd'});
    })

    function showDialog() {
        $("#dialog").dialog();
    }
</script>
</body>

于 2012-04-20T07:54:16.660 に答える
0

たぶんあなたはJoda-Timeプラグインを試してみるべきです:http://grails.org/plugin/joda-time

そして、このブログ投稿を見てください:Rendering Grails Joda-時刻の日付入力は、HTML5、jQuery、Modernizrを使用したクロスブラウザーです。

于 2012-04-20T05:11:43.013 に答える
0

ニーズに合う可能性のあるGrailsJQueryUIプラグインがあります。詳細については、http: //grails.org/plugin/jquery-uiを参照してください。

この特定のプラグインがあなたのニーズに合わない場合でも、私はそこにそうなるプラグインがあると思います。

于 2012-04-20T01:26:25.290 に答える