首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kentico系统表表单验证

Kentico系统表表单验证
EN

Stack Overflow用户
提问于 2012-07-22 23:26:36
回答 1查看 990关注 0票数 0

我正在使用自定义注册webpart,并希望我的表单验证像这样工作->

在验证显示上: 1.在每个无效的输入旁边有一个红色的星号2.在顶部表单中有一个验证摘要。

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

谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2012-07-30 16:56:04

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

如果您想在6.0中实现这一点,请查看以下关于Kentico bizforms中的验证消息的示例:

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

代码语言:javascript
复制
protected void viewBiz_OnValidationFailed()
{

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

}

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

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

要访问用于验证的字段值,请检查以下代码(该字段在本例中称为"FirstName“):

代码语言:javascript
复制
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 ;)

致敬,鲍里斯·波卡特科,肯蒂莫

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11601529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档