为什么会抛出无效值?

发布于 2024-08-26 20:18:15 字数 215 浏览 3 评论 0原文

我有一个 DevExpress TextEdit,它与数据集进行数据绑定。

该字段是可选的百分比(数据类型双精度)。

当记录加载并且字段中没有值时,一切都很好。

但是,如果您在字段中输入某些内容(IE 100),然后想将其删除,我会收到“无效值”错误。

为什么会出现这种情况,如何消除它?

我在此字段上没有任何掩码或任何类型的显式验证。

I've got a DevExpress TextEdit which is databound to a dataset.

The field is an optional percentage, (datatype double).

When the record gets loaded and there is no value in the field, everything is fine.

However, if you type something into the field (IE 100) and then want to remove it afterwards, I get an Invalid Value, error.

Why does this occur, and how can I remove it?

I do not have any mask or any sort of explicit validation on this field.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命比纸薄 2024-09-02 20:18:15

我在 DevExpress 论坛上的 Brendon Muck 的帮助下解决了这个问题。

我的 TextEdit 之一绑定到 Text 属性而不是 EditValue (所有都应该绑定到 EditValue)

另外,根据 Brendon

从 TextEdit 控件中删除文本不会将该字段设置为 NULL。您必须处理 EditValueChanged 事件,并在检测到空字符串时手动将值设置为 null。

所以,我创建了方法来处理它

Private Sub SetTextEditToNull(ByVal sender As TextEdit)

    If String.IsNullOrEmpty(sender.EditValue.ToString.Trim()) And (Not sender.EditValue Is DBNull.Value) Then

        sender.EditValue = DBNull.Value

    End If

End Sub

,在我的事件处理程序中我使用:

    SetTextEditToNull(CType(sender, TextEdit))

I have resolved this with the assistance of Brendon Muck on the DevExpress forums.

One of my TextEdit's was bound to the Text property instead of the EditValue (all should be bound to EditValue)

Also, per Brendon

Deleting the text out of the TextEdit control doesn't set the field to NULL. You'd have to handle the EditValueChanged event and manually set the value to null when an empty string is detected.

So, I have created method to handle it

Private Sub SetTextEditToNull(ByVal sender As TextEdit)

    If String.IsNullOrEmpty(sender.EditValue.ToString.Trim()) And (Not sender.EditValue Is DBNull.Value) Then

        sender.EditValue = DBNull.Value

    End If

End Sub

And in my event handler I use:

    SetTextEditToNull(CType(sender, TextEdit))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文