Kentico系统表格形成验证

时间:2012-07-22 15:26:36

标签: kentico

kentico 6 我正在使用自定义注册webpart,并希望我的表单验证工作如下 - >

验证显示: 1.每个输入旁边的红色星形无效 2.以最佳形式提供验证摘要。

Kentico每个feidl只允许一条验证消息,所以我不知道如何解决这个问题。

谢谢:)

1 个答案:

答案 0 :(得分:0)

您可以自定义表单验证,也可以等待7.0版本;)7.0版本默认支持这样的行为(带有错误摘要和链接/锚点到输入错误的字段)。因此,如果可以使用Kentico 7.0RC或等到最终版本,我会推荐这种方法,因为您在6.0中的自定义将会过时。

如果您想在6.0中实现此目的,请在Kentico bizforms中验证验证消息中查看此示例:

在示例中,viewBiz是我们正在使用的BizForm的代号。建议在进行任何更改(documentation on changing code of standard web parts)之前创建Web部件的克隆,并对这些克隆的代码文件进行更改。

protected void viewBiz_OnValidationFailed()
{

    ((CMS.ExtendedControls.LocalizedLabel)this.viewBiz.BasicForm.FieldErrorLabels["FirstName"]).Text="Field specific error message";

}

正如您所看到的,您需要从哈希表中获取错误标签作为控件并正确设置它的属性(此处为文本)。 要设置主要验证消息,您只需使用以下代码:

this.viewBiz.ValidationErrorMessage =“主要错误消息”;

要访问字段值以进行验证,请检查以下代码(示例中该字段称为“FirstName”):

protected void viewBiz_OnAfterValidate()
{
        this.viewBiz.ValidationErrorMessage = "Main error message";
        string find = "FirstName";
        Control cl = this.viewBiz.BasicForm.FindControl(find);

        string toValidate = "";

        if (cl != null)
        {
            TextBox tb = (TextBox)cl;
            toValidate = tb.Text.ToString().Trim();
        }
}

请注意,您必须在bizform定义中注册所有提到的方法:

如果中断BizForm的处理,则可能需要手动保存数据:

viewBiz.BasicForm.SaveData( “redirect.to.this.url”);

PS。我们比stackoverflow更频繁地监视我们的论坛;)

此致 鲍里斯波卡特科, Kentico