時々、複数行の入力を許可する入力コントロールを作成する必要があります。入力のタイプと列の数はケースごとに異なる可能性がありますが、通常は編集中のデータベーステーブルを表すため、各行に id 値を格納できます。入力するデータがさらにある場合は、ユーザーが入力に新しい行を追加できるようにすることもできます。
私はこれに対していくつかのアプローチを試みましたが、それらはすべて、そのような明白で一般的なシナリオのように見えるものに対して、非常に長い時間を費やしています. 私が見逃したこれを行う簡単な方法がなければならないと考えています。
私が通常これを解決する方法は、リスト ビューを使用し、アイテム テンプレート内に必要なすべての入力コントロールを入力し、書式設定に html テーブルを使用して、各アイテムをテーブルの行にすることです。編集する既存のデータがある場合は、データベースからデータを読み込み、空白のオブジェクトを結果に追加して、リスト ビューにバインドします。既存のデータがない場合は、空白のレコードを含むコレクションを作成し、それをリスト ビューにバインドします。新しい行を追加するためのボタンを追加します。このボタンをクリックすると、すべてのリストビュー アイテムを反復処理してコレクションにデータを入力することで、リスト ビューから既存のデータをすべて取得します。コレクションに空のオブジェクトを追加し、リストビューを結果で再バインドします。保存するときは、リストビュー項目を再度繰り返し、各行内の非表示フィールドを使用してレコード ID を格納することにより、結果を取得します。これにより、新しいレコードが追加されたか、既存のレコードが編集されたかが決まります。
このアプローチは私にとってはうまくいきますが、これを達成するためのより簡単な方法があるはずです。他の人がこれをどのように解決するかを楽しみにしています。