为什么 ASP.NET 在内容更改后提交 TextBox 控件的原始值?

2024-05-12

我有一个 Web 表单,允许用户修改某些字段中的数据(主要是 TextBox 控件,还有几个 CheckBox、DropDownList 和一个 RadioButtonList 控件),并使用提交按钮保存更改。相当标准的东西。问题是,我需要跟踪他们修改了哪些字段。因此,我使用 ASP.NET HiddenField 控件来存储原始值,然后在提交时将其与相应 TextBox(例如)控件的值进行比较,以确定哪些字段已被修改。

但是,当我提交表单并进行比较时,后面代码中的 TextBox 控件的值仍然反映原始值,即使我更改了 TextBox 的内容,因此它没有注册更改。下面是我的 ASP.NET 表单中的一组 TextBox/HiddenField 配对(在本例中是姓氏、名字、中间名)的示例:

<div id="editName" class="editField" style="display: none">
    <asp:TextBox ID="tbxLName" runat="server" class="editable"></asp:TextBox>,
    <asp:TextBox ID="tbxFName" runat="server" class="editable"></asp:TextBox>
    <asp:TextBox ID="tbxMName" runat="server" class="editable"></asp:TextBox>
    <asp:HiddenField ID="hdnLName" runat="server" />
    <asp:HiddenField ID="hdnFName" runat="server" />
    <asp:HiddenField ID="hdnMName" runat="server" />
</div>

我在后面的代码中的 PageLoad 上设置所有这些控件的原始值(对于 TextBox 控件为“.Text”,对于 HiddenField 控件为“.Value”)。

下面是我在提交表单时进行比较的示例(如果值不同,我会将字段名称、旧值和新值添加到 List 对象中):

if (tbxLName.Text != hdnLName.Value)
{
    changes.Add("ConsumerLastName");
    oldVal.Add(hdnLName.Value);
    newVal.Add(tbxLName.Text);
}

但是当我在 TextBox 控件中输入新值并单击“提交”时:

然后单步执行调试器中的代码,它显示控件的值仍然是旧值:

即使当我单击提交按钮时新值已经存在,为什么仍会与 TextBox 的原始值进行比较?

更新: @David 得到了这一点,尽管他没有将其作为答案发布 - 我忘记在 IsPostBack 检查中附上用于预填充控件原始值的方法;我真的应该更清楚,我已经这样做很长一段时间了!


您是否在 Page_Load 中检查 IsPostback,以免覆盖回发中发送的值?

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

为什么 ASP.NET 在内容更改后提交 TextBox 控件的原始值? 的相关文章

随机推荐

  • 如何计算持续时间?

    我正在开发一个基于网络的应用程序来从系统日期时间捕获开始时间和结束时间 但我的主要问题是我不知道如何获取停机时间的开始时间和结束时间之间的持续时间 Function to get current start time var startTi
  • 规范“毒”方式真的值得吗? (3NF)

    我正处于数据库设计的早期阶段 所以还没有最终的结果 并且我正在为具有可选标签的线程使用 TOXI 3表设计 但我忍不住觉得加入是并不是真的必要 也许我只需要依赖我的简单标签列posts我可以在其中存储类似 varchar 的表
  • System.Web.HttpException 无法加载类型“[命名空间].???”

    这开始于无法加载类型 全局 错误 在我尝试了一些方法后 没有找到删除 Global asax 文件的位置 现在错误是无法加载类型 namespace 在哪里 是我尝试加载的每个页面的类名 该网站 在 VS2008 本地开发计算机中执行时 工
  • 使用 lambda 作为模板参数时出现的编译器错误是什么?

    Edit 这已被报告为 Microsoft Connect 上的 VS2012 C 编译器错误 link https connect microsoft com VisualStudio feedback details 788426 vs
  • 使用 django-filters 设置初始值?

    当使用Django 过滤器 https django filter readthedocs orgapp 如何设置过滤器中字段的初始值 通常采用标准形式Django 例如一个简单的选择列表形式 class MyForm forms Form
  • 如何将任意颜色的色度键滤镜应用到实时摄像头源ios?

    基本上我想将色度键滤镜应用到 ios 实时摄像头源 但我希望用户选择将被另一种颜色替换的颜色 我找到了一些使用绿屏的示例 但我不知道如何动态替换颜色而不仅仅是绿色 知道如何以最佳性能实现这一目标吗 您之前曾询问过我的情况GPUImage h
  • iOS 以编程方式撤销位置服务权限

    有没有一个功能CLLocationManager or UIApplication撤销位置权限类似功能unregisterForRemoteNotifications撤销推送通知权限 The stopUpdatingLocationCLLo
  • Typescript:通用对象映射函数

    对于以下类似的函数 map但对于物体 function mapObject f obj return Object keys obj reduce ret key gt ret key f obj key return ret 有没有办法输
  • 活动工作流程与运行工作流程

    本周末在伊利诺伊州莱尔举行的 SharePoint Saturday 活动上 Robert Bogue 表示活动工作流和正在运行的工作流之间存在差异 我在网上查了一下 有人能解释一下吗 如果服务器上可以有多达数百万个活动工作流程 为什么每台
  • 更改 ProgressDialog 的背景

    我正在尝试更改背景ProgressDialog 我在网上搜索并找到了各种建议 例如如何从对话框中删除边框 https stackoverflow com questions 8051581 how to remove border from
  • 如何在Java中命名HashMap?

    这可能是一个愚蠢的问题 但我从未找到一种令人满意的方式来命名类型变量HashMap
  • spring-cloud-stream 请求-回复消息传递模式

    是否有一种应该与 spring cloud stream 一起使用的请求 答复模式 我在 spring cloud stream 上找到的所有文档都是针对 MessageChannel send 即发即弃类型的生产者 并且我熟悉 sprin
  • 通过 AJAX jquery 更改表格背景颜色?

    设想 当我的网页加载时 自动搜索单元格已由用户输入并且具有价值 如果已输入 表格背景颜色将为红色 否则为绿色 假设该表尚未输入 桌子背景绿色是这样的 和表的源代码 table width 1023 height 200 border 1 t
  • Android Lollipop 上的海拔 + 透明度错误

    在 API 21 上为具有一些 alpha 例如 99fe0038 和一些高程的视图使用背景颜色会显示两个圆圈 一个用于视图本身 另一个用于内部 标高和背景颜色通过代码设置 view setElevation getResources ge
  • TwiML 应用程序 - 当用户回复 Twilio Number 的 STOP/START 时调用 AWS Lambda

    这是我的场景 我正在使用 Twilio 向我的客户发送短信 当用户决定不接收这些短信时 他们会回复 停止 并开始再次接收 这是由 Twilio 自动处理的 但是 我需要调用 AWS Lambda 函数并相应地更新我的数据库 这就是我到现在为
  • 尝试了解CMTime

    我见过一些examples https stackoverflow com questions 5808557 avassetwriterinputpixelbufferadaptor and cmtime of https stackov
  • 在 R 中索引数据帧

    再会 我不明白这里的主题 就像它有效但我不明白为什么 我有这个数据库 planets df is pre loaded in your workspace Use order to create positions positions lt
  • 具有少量父设备属性的 udev 规则

    我需要复杂且通用的udev规则来确定插入任何 USB 集线器的特定端口的 USB 设备 所以 我必须结合设备树不同层的父属性 我有这个 udevadm info query all name dev ttyUSB0 attribute wa
  • 点击后退按钮时,iCarousel 会显示在上一页

    当我按下后退按钮时 这iCarousel仍然显示 1 秒 为什么会发生这种情况以及如何阻止这种情况 我已经使用故事板创建了 iCarosel 视图 void viewDidUnload super viewDidUnload self ca
  • 为什么 ASP.NET 在内容更改后提交 TextBox 控件的原始值?

    我有一个 Web 表单 允许用户修改某些字段中的数据 主要是 TextBox 控件 还有几个 CheckBox DropDownList 和一个 RadioButtonList 控件 并使用提交按钮保存更改 相当标准的东西 问题是 我需要跟