在没有 DataBind 的情况下向 GridView 添加新行

2023-11-21

我有一个 GridView,它允许随时编辑每一列、每一行中的值。用户输入所有更改,单击“保存”一次,所有更改均已提交。

用户还必须能够单击“新建”按钮,在 GridView 中显示一个新行(是的,它必须显示在实际的 GridView 中),输入他们想要的任何数据,单击“保存”并将所有更改保存到数据库中。

现在。这是让我困惑的用户案例:用户到达页面,对几个现有行进行多项更改,然后需要添加一个新行,在新行中输入数据,单击“保存”,并将所有更改都转到数据库。

但是,我见过的添加新空行的唯一方法涉及重新绑定 GridView,这意味着所有更改都将丢失。这显然是不好的。

所以,我的问题是:有哪些方法可以向 GridView 添加新的、空的、可编辑的行,而无需重新绑定 GridView?

我唯一能想到的是,在“新建”按钮的单击事件中,从 GridView 中吸出所有数据(包括用户的潜在编辑),将其保存到 ViewState (或其他),添加新行,重新填充网格。对我来说,这似乎有点 hacky,但它应该允许我在 GridView 上关闭 ViewState。

有任何想法吗?


我立即想到了两个选择。第一个是缓存绑定到网格中的原始结果,当您需要添加另一行时,将数据行添加到要绑定到的数据表中,然后将其绑定到网格。如果网格中有变化,则需要更新数据表。完成所有更改并且用户单击“保存”按钮后,您可以迭代表并使用数据更新数据库。

它可能看起来像这样

页面加载

  • 获取数据库数据并放入表中
  • 将表格绑定到网格
  • 将表存储在缓存中

当用户请求新行时

  • 获取缓存的数据对象。
  • 更新任何已更改的行
  • 添加一个空行绑定到网格

当用户保存网格时

  • 获取缓存的对象。
  • 进行最后一组更新
  • 循环遍历行并更新数据库

另一种方法是动态创建网格,但这将涉及比您所描述的内容更多的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有 DataBind 的情况下向 GridView 添加新行 的相关文章

  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • IIS7 上的 ASP.NET 应用程序 - iisreset 后启动速度非常慢

    我有一个在 Windows 2008 上的 IIS7 下运行的 ASP NET 3 5 网站 当我重新启动 IIS iisreset 然后点击一个页面时 初始启动非常慢 我在 Process Explorer 中看到以下活动 w3wp ex
  • 如何为本机启用现有 WCF 服务的 JSONP?

    我有一个现有的服务 如下方法 AspNetCompatibilityRequirements RequirementsMode AspNetCompatibilityRequirementsMode Allowed ServiceBehav
  • 存储在 Session 中的变量在整个页面生命周期中是否反序列化一次或多次?

    我想以类似的方式包装会话变量在 CodeProject 上讨论 http www codeproject com KB aspnet wrapthosesessionvariables aspx msg 2315287 public sta
  • 当路径长度超过 260 个字符时 System.IO.DirectoryNotFoundException [重复]

    这个问题在这里已经有答案了 我有 ASP NET Core MVC 项目 针对 NET 4 62 我正在尝试保存文件 当路径长度低于 260 或 248 我不确定 时 一切正常 但是当路径长度更长时 我会得到一个System IO Dire
  • 获取所有查询字符串对并初始化字典的最佳方法

    我想将所有键 值对存储在我的查询字符串中 www example com a 2 b 3 c 34 进入字典 有没有一种快速的方法可以做到这一点 而无需手动循环所有项目 Try HttpUtility ParseQueryString 它给
  • 如何在c#中生成8字节GUID值? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 GUID 生成 8 字节唯一 ID https stackoverflow com questions 5678177 how to generate 8 bytes unique id fr
  • 检测到 NuGet 包的版本冲突

    我正在开发 ASP Net core 2 1 Web 应用程序项目 我的解决方案中有 1 个项目和 3 个其他库 它是高级架构 数据访问层 DAL 业务层 BL 公共层 CL 所以我需要添加引用来连接一些库和项目 我已经添加了CL参考我的项
  • 从 Orchard 内的主题渲染图像

    我刚刚选择 Orchard 来构建我的博客 作为创建这个新博客的努力的一部分 我正在创建一个自定义主题 这个自定义主题同时具有 CSS 和图像 我的问题 我的问题基本上可以归结为 如何渲染属于主题一部分的图像 到目前为止我已经尝试过的 我尝
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 使用 json 向 RESTful WCF 发送 Post 请求

    我已经尝试了每种组合来发送请求 以从 jQuery 向 RESTful WCF 发送 POST 请求 有人可以模仿并使其发挥作用吗 代码在这里 http pastebin com Ua97919C http pastebin com Ua9
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • 使用 asp.net 发送 20,000 多封电子邮件

    我正在编写一个应用程序 需要向从我们的数据库中选择的学生发送大量电子邮件 每封电子邮件都将进行个性化 包括他们的姓名 学习课程等 因此需要一次发送一个 我可以在 SmtpClient 上循环执行此操作 但我担心我尝试发送的数字最终会遇到超时
  • ASP.NET - 如何在页面中编写一些 html?与 Response.Write?

    我需要根据字符串变量更改我正在编码的 asp net 页面区域中的一些 html 我正在考虑创建一个标签 然后更改其上的文本 但字符串变量包含类似以下内容 h2 p Notify p alert h2 所以 我认为将其赋予标签文本不是一个好
  • 清洁琴弦的更好方法?

    我正在使用这种方法来清理字符串 public static string CleanString string dirtyString string removeChars lt gt string result dirtyString f
  • ASP.NET:如何删除所有用户的所有会话变量?

    我们有 ASP NET 应用程序 想要删除所有用户的所有会话中的所有会话变量 我的意思是不要仅使用以下命令从当前会话中删除会话变量 Session Clear or Session Abandon 我们还需要清除其他用户会话中的会话变量吗
  • 使用内存中的单元测试 .ToListAsync()

    下面是由于内存数据库集不支持 ToListAsync 而在 ShouldNotThrow 上失败的测试 我没有方便的确切措辞 但你明白了 如果它很重要 我正在尝试模拟实体框架版本提供的数据库集 6 1 3 TestFixture publi
  • 为什么同时存在 System.Net.Http 和 System.Web.Http 命名空间?

    这只是一个简单的问题 因为我正在研究 NET 中可用的各种类库 我注意到有一个System Net Http命名空间和一个System Web Http命名空间 这两个命名空间都有什么用途 创建两个看似不明确的命名空间的动机是什么 是否有任
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • ASP.net Gridview 分页在 UpdatePanel 中不起作用

    虽然类似的问题已经被问过很多次了 但问题仍然没有解决 这是问题 我有一个GridView它包含在选项卡容器中AJAX控件本身位于UpdatePanel Gridview工作得很好并且其相应的方法被准确地触发 但是当我启用paging 例如

随机推荐

  • 如何从 UIAlertView 获取输入?

    我想使用 UIAlertView 将玩家名称作为输入 是否可以在 UIAlertView 上添加 textField 从 iOS 5 开始 UIAlertView 提供了这一点 将alertViewStyle 属性更改为以下之一 UIAle
  • C# 根据下载请求动态重命名文件

    尝试下载时是否可以重命名文件 例如 我想使用文件的 ID 将文件存储到文件夹中 但是当用户下载文件时我想返回原始文件名 只需在这里更改文件名即可 Response AppendHeader Content Disposition attac
  • 从 jenkins 构建 git 项目时,它显示错误,例如找不到任何要构建的修订版本

    尝试通过 jenkins 构建 git 项目时出现错误 错误 找不到任何要构建的修订版 验证此作业的存储库和分支配置 完成 失败 此错误意味着什么以及我应该如何删除它 我确认 一个空的仓库没有 HEAD 也没有分支 我在 为什么我需要显式推
  • 如何使用 C# 调用接收 Delphi 开放数组参数的函数?

    如何将 Delphi 代码转换为 C 代码 这需要一个array of Byte 但我不确定 C 的等价物是什么 我的尝试不起作用并引发 AccessViolationException 等异常 Delphi function SetLev
  • 为什么我没有看到 System.Delegate 上重载的 += 运算符?

    我看到相等比较运算符 and 超载于System Delegate and MulticastDelegate但不是 and 运营商 那么增量赋值和减量赋值运算符如何在委托实例上工作呢 C 编译器翻译 调用静态方法的运算符Delegate
  • 在facet_grid 的小平面之间绘制线条

    Intro 我想在多面 ggplot 之间画线 主要目标是将这些测量结果与我们要测试的线连接起来 所以基本上我想在 ggplot 箱线图 或任何类型的图 的内部和之间插入某种重要性条 Research ggsignif 我知道有ggsign
  • .NET - 字典锁定与 ConcurrentDictionary

    我找不到足够的信息ConcurrentDictionary类型 所以我想我应该在这里问一下 目前 我使用一个Dictionary保存由多个线程 来自线程池 因此没有确切数量的线程 不断访问的所有用户 并且它具有同步访问 最近发现 NET 4
  • PHP5 对象是通过引用传递的吗? [复制]

    这个问题在这里已经有答案了 我似乎无法获得任何关于此的一致信息 不同的来源似乎说了不同的事情 以及令人尊敬的 php net 本身 appears 不要明确说明这一点 尽管我必须承认 我只是快速浏览了一下 在我传递 重 对象的情况下 我需要
  • 删除 TabPage:处置或清除或两者兼而有之?

    我正在开发一个 Windows 窗体 它有一个名为 tabDocuments 的 TabControl 我遇到了这段代码 它从 TabControl 中删除所有页面 for int i tabDocuments TabPages Count
  • 如何在 IE8 中触发自定义 JavaScript 事件?

    我正在尝试在 IE8 上触发自定义事件并一起摆弄解决方案here and here 但我无法让它工作 我正在将 jquery mobile 与 requireJS 和谷歌分析一起使用 所以我正在跟踪 JQMpageshow事件 然而 由于
  • 如何设置服务来传递Google Sheet ID? AngularJS

    我正在使用 Angular 构建一个小部件 它接受用户给出的 Google Sheet Ids 并以漂亮的 json 格式发布输出 问题是我的代码什么也没做 控制台中没有错误 当我添加 ID 时没有任何反应 我想问题出在服务 js angu
  • Windows 8/8.1/10 中不显示名称为“卸载 <程序名称>”的快捷方式

    使用 MSI 安装程序 我们在 Windows 7 8 8 1 10 操作系统上创建应用程序快捷方式 除了应用程序快捷方式之外 我们还为程序创建卸载快捷方式 Win7 之前的快捷方式路径 ProgramsMenuFolder 公司名称 产品
  • 带有每个角色视图的客户端模板

    我一直在读关于AngularJS它看起来非常有前途 这是我想要弄清楚的唯一一件事 不是特定于框架的 但它对于客户端模板来说是通用的 假设您有一个具有多个角色的 Web 应用程序 每个角色可能包含附加功能 所以您不能为每个角色使用不同的模板
  • 如何在 HTML 中的新选项卡中打开链接?

    我正在开发一个 HTML 项目 但我不知道如何在没有 JavaScript 的情况下在新选项卡中打开链接 我已经知道了 a href http www WEBSITE NAME com a 在同一选项卡中打开链接 有什么想法如何让它在新的中
  • React.js 从子函数调用父函数

    我知道有几个类似的问题here and here但我很难理解今天对此的正确想法是什么 并将其推断到我的情况 我有一个简单的应用程序 ScoreBox 有一个 ScoreList 其中有很多分数 我想要一个 Score onClick 调用
  • R 安装包 RevoScaleR

    在尝试安装包 RevoScaleR 时 出现以下错误 我尝试过使用各种版本的 R 安装此软件包 但每次都会出现相同的错误 有谁知道为什么吗 install packages RevoScaleR install packages 中的警告
  • 在Python中检测Windows 8.1?

    我们有一个使用的脚本平台模块检测我们各种客户端的操作系统版本 查看platform py的源代码 我可以看到在Windows系统上 它使用sys getwindowsverion 不幸的是 在 Windows 8 1 系统上 该特定函数报告
  • Eclipse 中的 Python 文档

    有没有办法将标准Python文档集成到Eclipse中 因此 可以在 API 函数上按 F1 并在 Eclipse 的帮助视图中获取其描述 我使用 PyDev Thanks 我也遇到了同样的问题 所以我为此目的制作了一个 Eclipse 插
  • 如何保存并检查文件是否存在于作用域存储中?

    到目前为止 我检查文件是否存在 如果不存在 则将其保存到 Environment getExternalStoragePublicDirectory Environment DIRECTORY PICTURES 中的设备 但 Android
  • 在没有 DataBind 的情况下向 GridView 添加新行

    我有一个 GridView 它允许随时编辑每一列 每一行中的值 用户输入所有更改 单击 保存 一次 所有更改均已提交 用户还必须能够单击 新建 按钮 在 GridView 中显示一个新行 是的 它必须显示在实际的 GridView 中 输入