有时,我需要创建一个允许多行输入的输入控件,输入的类型和列数在每种情况下可能不同,但通常它代表正在编辑的数据库表,因此它还应该可以在每一行中存储一个 id 值。如果用户有更多数据要输入,还应该可以向输入添加新行。
我已经尝试了几种方法来实现这一点,但对于看起来如此明显且常见的情况,它们都非常冗长。我想一定有一种简单的方法可以做到这一点,但我错过了。
我通常解决这个问题的方法是使用 ListView ,输入项目模板中所需的所有输入控件,并使用 html 表格进行格式化,每个项目都是表格的一行。如果有要编辑的现有数据,我将从数据库加载数据,向结果添加一个空白对象并将其绑定(bind)到 ListView 。如果没有现有数据,我将创建一个包含空白记录的集合并将其绑定(bind)到 ListView 。我添加了一个用于添加新行的按钮。单击时,此按钮通过迭代所有 ListView 项并将数据填充到集合中来检索 ListView 中的所有现有数据,然后我将向集合添加一个空白对象并将 ListView 与结果重新绑定(bind)。保存时,我将通过再次迭代 ListView 项并使用每行中的隐藏字段来存储记录 ID 来检索结果。这将确定是添加新记录还是编辑现有记录。
这种方法对我有用,但我确信必须有更简单的方法来实现这一目标。期待看到其他人如何解决这个问题。
最佳答案
对于 Web 表单,请使用 GridView。您可以设置其属性以允许编辑、删除、新行、排序和分页。
查看 MSDN 示例 here这显示了如何使用它。如果您将数据源绑定(bind)到它,它会计算出列并动态调整,或者您可以预定义所需的列以获得更多可定制性。
关于c# - asp.net中的多行输入用于编辑数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782322/