【问题标题】:Form only saving when inputs lost focus仅在输入失去焦点时保存表单
【发布时间】:2012-09-13 19:34:29
【问题描述】:

我正在使用带有数据绑定 (ObjectDataSource) 的表单 (FormView),并且我的所有输入字段都使用 '<%# Bind("field") %>' 绑定。

一切正常,但我有两个问题(我发现了各种提示,例如使用 this.Validate() 或 .EndEdit() - 但似乎都没有用):

  • 条目仅在离开输入字段后才会保存,因此会失去焦点

假设我有一个 ID 为 Name 的文本框,然后输入“George”。当我将选项卡转到下一个文本框时,或者当我单击其他地方并单击保存时 - 一切都已保存。但是当我将焦点放在文本框中时,值不会被保存。为什么会这样?我可以使用什么魔法来规避这个问题(JavaScript 来拯救?)。

  • 我通过 Javascript 设置了文本框的字段值 (element.value)(在组合框中选择某些内容时)。

与上述相同的问题适用,只有当我给文本框焦点和标签时,值才会被保存。这产生了一个问题,我只希望用户在组合框中选择某些内容(文本框会相应更新)并继续前进 - 我不希望用户之后点击文本框并再次跳出。


编辑:

我现在解决的第二个问题是通过 Javascript (textbox.focus();) 将焦点设置在我的文本框上,并在将焦点重新设置回组合框 (combobox.focus();) 之后解决了这个问题 - 这对我来说似乎相当骇人听闻,不是吗?


我假设这很常见,但我强大的 Google fu 并没有帮助我找到简单的解决方案。

【问题讨论】:

  • 您是否尝试强制将焦点放在被点击的按钮上然后提交?
  • 不,但我可以为我用 JS 填充的一个字段执行此操作 - 一般保存问题仍然存在。

标签: c# asp.net objectdatasource formview


【解决方案1】:

在使用DataGridView 控件时,Winforms 开发中可能会出现类似问题。我通常将一些逻辑附加到提交按钮的Click 事件以使DataGridView 验证。我怀疑类似的解决方案在这里对你有用。

【讨论】:

  • 去过那里,做到了。我的保存按钮有一个this.Validate(),我在包含要保存的字段的用户控件上添加了一些Page.Validate()。
猜你喜欢
  • 2017-09-17
  • 2023-03-08
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
相关资源
最近更新 更多