在不刷新整个网格的情况下,向Asp.net网格视图添加新行

Add a new row to Asp.net gridview without refreshing entire grid

本文关键字:网格 Asp net 视图 新行 添加 情况下 刷新      更新时间:2023-09-26

我有一个用于数据输入的ASP.Net网格视图。我想要以下功能:当焦点在最后一行的最后一个单元格中时,按tab键,一个新行应该会添加到网格视图中。添加新行时,不应刷新整个网格,即在最后一行下方只应出现一个新的空白行。此外,在完成所有数据输入后,单击"保存"按钮(位于网格视图之外),我希望将行中所有输入的数据保存到数据库中。请帮助我使用此功能。

在网格视图中查看此代码项目示例。

希望这个能帮助你建立你的应用程序的想法。

这是可能的,但需要一个非常糟糕的破解才能实现,为什么?Microsoft将ASP.NET GridView控件设计为一个控件,该控件在服务器端呈现,然后将其HTML标记吐出到客户端浏览器。如果您需要在客户端启用插入,我建议使用以下替代方案:

  1. (最便宜的时间成本)保留网格视图,并通过在页面上有一个单独的容器来启用新记录插入:例如一个隐藏的面板,它具有创建新记录所需的输入控件。使用普通JaveScript可以在客户端轻松显示或隐藏面板。当点击"保存"时,输入数据将被发布回服务器并添加到您的数据存储中。

  2. (中等时间成本)迁移到ASP.NET Repeater控件。在Repeater中,您可以控制FooterTemplate,它可以包含表的最后一行。用任何输入控件填充此行,用一个容器包围此行,如果用户触发最后一行的tab键,该容器将使您能够简单地显示/隐藏它。

  3. (更大的时间成本)迁移到基于客户端的网格控件,如jqGrid。