1

行数が不明な、ユーザーが完成させる「テーブル」を作成したいと考えています。

これを説明するために、買い物の後に領収書から詳細を入力するとします。つまり、行 (またはアイテム) の数は不明です。

これを実現するために、1 つの行と、アイテム名と価格を入力するためのテキスト ボックスを含む 2 つの列を持つグリッドを作成します。

+------+---------+
+ アイテム + 価格 +
+-------+---------+
+ 豆 + 0.99 +
+- ------+---------+

次に、最初の行が完了したら、その場で別の行を生成したいと考えています。

これに最適なコントロールはどれですか? asp.net にはかなり慣れていないので、Gridview/DataGrid/Repeater を使用する必要があるかどうかはわかりません。(関連性があるかどうかはわかりませんが、アイテム texbox には Ajax AutoCompleteExtender が関連付けられています。)

どんなポインタでも大歓迎です。

編集

言い忘れたことの 1 つは、GridView (またはその他のもの) には、ロード時にデータがバインドされていないことです。それが決定に影響を与えるかどうかはわかりません。

4

2 に答える 2

2

GridViews は、行をインラインで追加するのが得意ではありません。おそらく、少しハッキーなことをしなければならないでしょう。実際のデータの最後に常にもう 1 つの空の行があるように、グリッド ビューでデータ ソースを設定できる場合があります。その後、グリッドの最後の行を編集モードに設定するようにしてください。グリッドビューがバインディングを終了するたびに。次に、更新アクションをインターセプトし、更新ではなく実際に挿入する必要があります。次に、ユーザーが既存の行を編集できるようにするかどうかという問題があります。既存の行を編集するときは、同時に 2 つの編集可能な行を持つことができないため、「空の」行を削除する必要があります。難しいですが、きっとできるはずです。

別の方法は、リピーターを使用して既存のすべての行を読み取り専用モードで表示し、最後に編集可能な行を出力することです。

この時点でどちらを選択するかはわかりません。

于 2011-02-04T17:54:56.360 に答える
0

確かにリピーターを使用できますが、データの構造をグリッドとして識別する場合 (たとえば、将来新しい列を追加する予定がある、または予定している可能性があることを意味します)、GridView がおそらく最適です。

于 2011-02-04T17:41:04.203 に答える