我在Delphi 7中有一个使用clientdataset的应用程序,并对其进行了多次操作。 ClientDataSet链接到Intraweb网格。
我在ClientDataSet上进行插入或编辑。如何验证clientdataset中为每个字段引入的数据?我无法在webform上验证用户的输入,因此我必须使用ClientDataSet事件进行验证。
LE:我想在用户输入时验证数据。不在onbeforepost事件。所以,我把clientdataset放在编辑/插入中。用户在网格中输入,我想在clientdataset中验证该行的数据,如下图所示:
第一列是字符串,第二列是整数,第三列也是整数。现在,我想在用户输入后验证第三列。必须完成此验证(如果可能),仅使用clientdataset事件/黑客。
答案 0 :(得分:3)
您应该处理TClientDataset BeforePost事件,如果数据无效,请使用abort方法
答案 1 :(得分:3)
TField为此目的有一个OnValidate事件。它还有一个CustomConstrain属性,可以使用类似SQL的语法来约束。如果没有给出值,DefaultExpression将允许您选择一个值。这些用于单场验证。如果需要跨多个字段进行更复杂的检查,则必须使用数据集或数据源事件。
无论如何,如果Intraweb网格向服务器发送整个记录而不是单个字段编辑,则可能无法验证字段,因为它们是在网格中输入的,但是添加了代码客户端。
答案 2 :(得分:1)
如果需要基于字段的验证,可以处理将网格连接到数据集的TDatasource的OnDataChange事件。只要用户更改了字段,就会触发此操作。您应该知道它也会在其他一些情况下触发。