我想创建一个用户将完成的“表格”,其中包含未知的行数。
为了说明这一点,我们假设它是在购物之旅后从收据中输入详细信息 - 即行数(或项目)将是未知的。
为了实现这一点,我想创建一个包含单行的网格,以及两个包含文本框的列,以输入项目名称和价格:
+ ------- + --------- +
+项目+价格+
+ ------- + --------- +
+豆+ 0.99 +
+ ------- + --------- +
然后在第一行完成后,我想动态生成另一行,依此类推。
对此最好的控制是什么?对asp.net来说相当新,所以不确定我是否应该使用Gridview / DataGrid / Repeater或者是什么。 (不确定它是否有任何相关性,但项目texbox与Ajax AutoCompleteExtender相关联。)
任何指针都是最受欢迎的。
我忘记提到的一件事是GridView(或其他)在加载时没有数据绑定到它。不确定这是否会影响决定。
答案 0 :(得分:2)
GridViews并不擅长内联添加行。你可能不得不做一些有点hacky的事情。您可以在网格视图上设置数据源,以便在实际数据的末尾始终有一个空行,然后只需确保将网格中的最后一行设置为编辑模式每次gridview完成绑定。然后你必须拦截Update动作并使其实际上是Insert而不是更新。然后是你是否也想让用户编辑现有行的问题:当编辑现有行时,你需要消除“空”行,因为你不能同时拥有两个可编辑的行。这很棘手,但你可能会这样做。
另一种方法是使用转发器以只读模式显示所有现有行,然后在最后输出一个可编辑的行。
我不确定此时我会选择哪一个。
答案 1 :(得分:0)
你肯定可以使用转发器但是如果你将数据结构标识为网格(意味着你计划或者可能计划在未来添加新列),那么GridView可能是最好的。