logo Devexpress WPF控件文档中心

单元格输入验证


您可以在将新数据保存到数据源之前对其进行验证。您可以禁止将无效数据保存到数据源,并指出任何错误。

单元格验证

步骤1.处理验证事件 处理一个验证事件

GridControl提供了以下事件来手动验证单元格值。

  • GridColumn.Validate(或TreeListColumn.Validate)事件允许你验证一个特定列的单元格值。
  • GridViewBase.ValidateCell(或TreeListView.ValidateCell)事件允许你验证所有的单元格值。


<dxg:GridColumn FieldName="UnitPrice" Validate="OnValidate" /> 
void OnValidate(object sender, GridCellValidationEventArgs e) { }
步骤2. 验证一个新值


使用以下GridCellValidationEventArgs的属性来获取单元格值。

  • ValidationEventArgs.Value属性返回一个应该被验证的新值。
  • GridCellValidationEventArgs.CellValue属性返回一个原始值。
获取值后可以根据验证规则对其进行验证。如果单元格的值没有通过验证,则将ValidationEventArgs.IsValid属性设置为false。在这种情况下,终端用户不能将焦点移动到另一个单元格,直到该单元格的值有效。
在下面的代码示例中,如果产品停产,产品的价格不能降低30%以上。
void OnValidate(object sender, GridCellValidationEventArgs e) {
    bool discontinued = ((Product)e.Row).Discontinued;
    if (discontinued) {
        double discount = 100 - (Convert.ToDouble(e.Value) * 100) / Convert.ToDouble(e.CellValue);
        if (!(discount > 0 && discount <= 30)) {
            e.IsValid = false;
        }
    }
}
步骤3. 显示错误


使用以下GridCellValidationEventArgs的属性来定制错误指示。

  • ValidationEventArgs.ErrorType属性允许你指定所需的图标。
  • ValidationEventArgs.ErrorContent属性允许您指定错误工具提示的描述。
下面的代码示例演示了如何根据输入的值来显示错误工具提示。
void OnValidate(object sender, GridCellValidationEventArgs e) {
    bool discontinued = ((Product)e.Row).Discontinued;
    if (discontinued) {
        double discount = 100 - (Convert.ToDouble(e.Value) * 100) / Convert.ToDouble(e.CellValue);
        if (!(discount > 0 && discount <= 30)) {
            e.IsValid = false;
            e.ErrorType = ErrorType.Critical;
            if (discount < 0) {
                e.ErrorContent = string.Format("单价不能大于 ${0}", 
                    Convert.ToDouble(e.CellValue));
                return;
            }
            e.ErrorContent = string.Format("折扣不能大于 30% (${0}). 请核对价格.", 
                Convert.ToDouble(e.CellValue)*0.7);
        }
    }
}



在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP