c# - asp.net中的多行输入用于编辑数据库表

标签 c# asp.net sql webforms

有时,我需要创建一个允许多行输入的输入控件,输入的类型和列数在每种情况下可能不同,但通常它代表正在编辑的数据库表,因此它还应该可以在每一行中存储一个 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/

相关文章:

c# - Control.Invoke 和 Dispatcher.Invoke 之间的区别

c# - 具有相同权重/值的修改后的背包/子集和

c# - 在可视化 Web 部件中从 javascript 调用代码隐藏函数

c# - 初始化后动态注册按钮点击事件

mysql - 如何优化查询以在执行主查询之前首先检查另一个表?

c# - 同时触发重复执行的任务

c# - 如何在 C# 中运行可变数量的并发参数化无限循环类型线程?

c# - 是否有更好的方法将 SQL 中的分层数据填充到类结构、C# 或 VB.NET 中?

PHP PDO : How to insert multiple rows?

php - 日期范围查询忽略跨越年末和年初的月份