Spring、jsp、javascript、jqueryを使用してWebアプリを開発しています。
datatablesを使用してテーブルを表示します。テーブルの行をクリックすると、すべてのフィールドがインライン編集入力、選択などに変更されます。さらに、次の行にいくつかの追加の入力フィールドと保存ボタンが表示されます。
今、私はこれを行ういくつかの方法を見ています。どちらを取るかわかりません。
選択した行へのハンドルを取得してから、tdを反復処理し、それらを入力/選択フィールドに変換できます。次に、新しいフィールドと保存ボタン用に追加の行を挿入できます。私はこれをクリーンな解決策とは考えていません。フォームにSpringModelAttributeバインディングを使用する代わりに、手動でPostを発行する必要があります。(ここでもModelAttributeを使用できますか?)
次のようなjspファイルに編集フォームを作成できます。
<form:form action="" commandName=""> <td> <input ... > </td> <td> <select ... > </td> </tr> <tr> <td> <label> <input new field> </td> <td> <button> </td> </tr>
テーブルの既存の行のtrを再利用する予定なので、jspファイルの先頭がないことに注意してください。このようにして、クリーンなフォームを作成し、フォームをJavaクラスにバインドする既に作成したupdateメソッドを使用することもできます。また、入力フィールドと列名の配置についても気にする必要はありません。
生成されたhtmlは次のようになります...
このアプローチの問題は、HTMLにフォーム要素を配置すると、フォーム全体がテーブルの1つのセルに詰め込まれ、見栄えが悪くなり、レイアウト全体が台無しになることです。抜け道はありますか?テーブルの内容をcolspanを持つものに置き換えてから、この要素内にdivを配置し、cssを微調整して、入力フィールドがテーブルの列名と一致するようにする必要がありますか?
あなたが提案できるより良い解決策はありますか?質問があまり明確でない場合は、詳細を記入できます。