2012-07-22 55 views
0

kentico 6 我使用的自定义登记的WebPart,并希望我的表单验证上验证显示像这个 - >Kentico系统表表单验证

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

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

谢谢:)

回答

0

您可以自定义表单验证,或者你可以等待7.0版本)的7.0版默认支持这样的行为(用一个漂亮的错误摘要和链接/锚领域输入不正确)。因此,如果可以使用Kentico 7.0RC或等待最终版本,我会推荐这种方法,因为您在6.0中的自定义会过时。

如果你想在6.0实现这一点,请检查验证消息,这个例子在Kentico bizforms:

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

protected void viewBiz_OnValidationFailed() 
{ 

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

} 

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

this.viewBiz.ValidationErrorMessage =“Main error message”;

要访问的字段值进行验证,请检查下面的代码(场被称为“姓”的例子):

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(); 
     } 
} 

请注意,你必须注册所有IHE提到的方法bizform定义:

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

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

PS。我们往往比计算器监控我们的论坛;)

问候, 鲍里斯Pocatko, Kentico