1

我想创建一个用户将完成的具有未知行数的“表”。

为了说明这一点,假设是在购物后从收据中输入详细信息 - 即行数(或项目数)将是未知的。

为了实现这一点,我想创建一个单行网格,两列包含用于输入商品名称和价格的文本框:

+-------+---------+
+ 物品 + 价格 +
+-------+---------+
+ 豆子 + 0.99 +
+- ------+----------+

然后在第一行完成后,我想动态生成另一行,依此类推。

哪个是最好的控制?我对 asp.net 相当陌生,所以不确定我是否应该使用 Gridview / DataGrid / Repeater 或什么。(不确定它是否有任何相关性,但项目 texbox 具有关联的 Ajax AutoCompleteExtender。)

任何指针都将受到欢迎。

编辑

我忘记提及的一件事是 GridView(或其他)在加载时没有绑定数据。不确定这是否会影响决定。

4

2 回答 2

2

GridViews 并不擅长内联添加行。你可能不得不做一些有点hacky的事情。您也许可以在网格视图上设置数据源,以便在真实数据的末尾总是有一个空行,然后确保将网格中的最后一行设置为编辑模式每次gridview完成绑定。然后,您必须拦截 Update 操作并使其实际插入而不是更新。然后是您是否还希望允许用户编辑现有行的问题:在编辑现有行时,您需要消除“空”行,因为您不能同时拥有两个可编辑的行。这很棘手,但你可能可以做到。

另一种方法是使用中继器以只读模式显示所有现有行,然后在最后输出一个可编辑的行。

在这一点上,我不确定我会选择哪个。

于 2011-02-04T17:54:56.360 回答
0

您当然可以使用中继器,但如果您将数据结构标识为网格(例如,意味着您计划或可能计划在未来添加新列),那么 GridView 可能是最好的。

于 2011-02-04T17:41:04.203 回答