2011-11-08 13 views
0

Grailsでボタンを持つテーブルセルを実装して、それを押すと、同じ行のセル内のデータが変更されますか?テーブルにはid、assignment、accepted(yes、no)フィールドのみがあるとします。 acceptの値はデフォルトではnoで、Acceptボタンをクリックするとyesに変わります。Grailsで反応性テーブルを実装する方法は?

GrailsのUIデータテーブルまたはjQueryグリッドを使用する必要がありますか?

答えて

1

submitToRemoteボタンを使用して、updateタグを使用して現在の表の行を更新できます。例えば:あなたのindex.gsp中:updateの属性値がindex.gspから<tr>のと同じである

<td>${data.id}</td> 
<td>${data.booleanValue}</td> 
<td><g:submitToRemote action="updateAction" id="${data.id}" update="dataRow${data.id}" /></td> 

注:何かのように、あなたの_tableRow.gspテンプレートがある

<table> 
<g:each in="${yourDataList}" var="data"> 
<tr id="dataRow${data.id}"> 
    <g:render template="tableRow" /> 
</tr> 
</g:each> 
</table> 

。 あなたのコントローラはアクションupdateActionがあります

def updateAction = { 
    Data data = Data.get(params.id) 

    // your business logic 
    data.booleanValue = false; 

    data.save(flush: true); 

    render(template: "tableRow", model: [data: data]); 
} 

は他の可能性が明らかに存在するが、これはあなたのための選択肢かもしれません。

+0

私はこれを理解していません。なぜあなたはビューでテンプレートをレンダリングしていますか?それはちょうどコントローラのアクションで行う必要がありますか?そして、div:youreの変更を定義するためだけのg:submitToRemoteタグの更新プロパティはありませんか? – drago

+0

私はあなたの提案のさまざまな組み合わせを試してみましたが、うまくいきませんでした。私はビューを適切にレンダリングするように管理しましたが、ボタンは反応しませんでした。 – drago

+1

申し訳ありませんが、おそらく私はあなたを理解しています。コードの部分だけが表示され、テーブルを作成する方法、ユーザーが各行でいくつかのアクションを実行する(タスクを受け入れるなど)、アクションに応じてページの何かが変更されます(この場合はテーブル行がリロードされます)サーバーからgspロジックがあなたの変更を処理したら、例えばボタンのテキストを変更します)。 – Chris

関連する問題