【问题标题】:Adding a new row in between rows in a grid view在网格视图的行之间添加新行
【发布时间】:2010-06-08 20:06:28
【问题描述】:

我有一个 ASP .net 网格视图。它有一些模板列,如命令按钮、文本框和下拉控件。当我单击命令按钮时,需要在当前行下方插入一个新行(从我点击命令按钮的位置)。

如果我有第 1 行和第 2 行,并且我点击了第 1 行中的命令按钮,则需要在第 1 行和第 2 行之间插入一个新行

现在在新行中,我应该能够从下拉列表中选择值并在文本框中输入一些值,最后点击我的保存按钮。 (这应该可以正常工作)

网格视图绑定到一些数据源,例如现在的数据表。

我可以考虑的一种方法是,当单击命令按钮时,我可以在服务器端代码中的数据表中添加一个新行并重新绑定网格。但我不确定,从 UI 的角度来看,我如何确保新行正好位于我点击命令按钮所在行的下方。

有什么想法或方法吗?

【问题讨论】:

    标签: asp.net visual-studio-2010 c#-4.0 datagridview


    【解决方案1】:

    我认为,如果您尝试在数据源中添加该行,然后再次绑定到 GridView,这将是一种更简单的方法。如果您有 DataSet 或自定义实体集合,这很容易。因为,您使用的是 DataTable,这也可以。处理点击事件并找到用户点击的行。返回到 dataTable 并在那里添加一个空行。这将确保 GridView 中的控件保持不变,您不必担心添加 DropDown 控件等。

    【讨论】:

    • 我已经这样做了,但从 UI 的角度来看,添加的新行将位于网格的末尾。但是从 UI 的角度来看,我希望将新行添加到我点击命令按钮的下方的行中。这就是我要求在 BETWEEN 之间添加新行的原因
    【解决方案2】:

    您必须通过保存在不可见列中的虚拟索引对数据源进行排序。在第一个数据绑定时(可能因为 ots 排序能力而使用 DataView),它将设置为原始 rowindex。第一次点击保存按钮后,您再次从数据库中获取数据表,并在“选定”行之后添加带有索引的附加行。然后再次将 GridView 与已排序的 DataView 绑定。

    我认为您需要另一个不可见的列来检测“临时”行。如果您不需要编辑“正常”行,则可以为此使用 edititemtemplate。否则,您可以在GridView.OnRoawDataBound 中使下拉列表和文本框可见,而其他控件不可见。

    【讨论】:

      【解决方案3】:

      code sample 用于在网格视图的行之间添加新行。

      【讨论】:

        猜你喜欢
        • 2013-05-24
        • 1970-01-01
        • 2022-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 2019-09-22
        • 1970-01-01
        相关资源
        最近更新 更多