当EditMode = InPlace时,RadGrid中的列验证

时间:2013-10-30 09:20:43

标签: c# validation telerik position radgrid

我在验证RadGrid中的列时遇到了一个非常烦人的问题。在编辑模式(IN PLACE)中,我想在按下图像按钮进行提交时验证列。

问题是我的GridTextBoxColumnEditor向上移动只是为了在验证失败时为错误消息腾出空间。因此,当加载编辑表单时,控件具有不同的垂直位置。我认为应该可以向上移动GridTextBoxColumnEditor并仅在验证失败时显示消息。然后所有控件都得到正确的对齐。我试图在InsertCommand事件中创建验证器,但这不起作用。在下面你可以看到我的代码:

protected void gridReports_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        GridEditableItem editedItem = e.Item as GridEditableItem;
        GridTextBoxColumnEditor editor = null;

        if (editedItem["description"].Text == " ")
        {
            editor = (GridTextBoxColumnEditor)editedItem.EditManager.GetColumnEditor("description");
            TableCell cell = (TableCell)editor.TextBoxControl.Parent;
            RequiredFieldValidator validator = new RequiredFieldValidator();
            validator.ControlToValidate = editor.TextBoxControl.ID;
            validator.ErrorMessage = "Field is mandatory!";
            cell.Controls.Add(validator);
        }

你们有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您将验证器显示属性设置为“动态”,则应解决您的问题。

validator.Display = ValidatorDisplay.Dynamic;