kentico 6 我正在使用自定义注册 webpart,并希望我的表单验证能够像这样工作->
关于验证显示: 1. 每个无效输入旁边有一个红星 2. 在顶部表格有一个验证摘要。
Kentico 每个 feidl 只允许一个验证消息,所以我不知道如何解决这个问题。
谢谢 :)
kentico 6 我正在使用自定义注册 webpart,并希望我的表单验证能够像这样工作->
关于验证显示: 1. 每个无效输入旁边有一个红星 2. 在顶部表格有一个验证摘要。
Kentico 每个 feidl 只允许一个验证消息,所以我不知道如何解决这个问题。
谢谢 :)
您可以自定义表单验证,也可以等待 7.0 版本;)默认情况下,7.0 版本支持这种行为(带有很好的错误摘要和链接/锚点到输入不正确的字段)。因此,如果可以使用 Kentico 7.0RC 或等待最终版本,我会推荐这种方法,因为您在 6.0 中的自定义将已过时。
如果您想在 6.0 中实现这一点,请在 Kentico bizforms 中查看有关验证消息的示例:
在示例中,viewBiz 是我们正在使用的 BizForm 的代号。建议在进行任何更改之前创建 Web 部件的克隆(有关更改标准 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 更频繁地监控我们的论坛;)
问候,鲍里斯·波卡特科,肯蒂科