ASP.NET验证问题 - 在客户端上动态填充DropDownList

时间:2010-04-28 17:29:24

标签: asp.net validation drop-down-menu

我在客户端使用JS填充DropDownList并使用RequiredFieldValidator进行验证。

这在客户端上工作正常,但Page.IsValid在服务器上一直返回false。

这是因为当首次向页面提供时,所选值不在DropDownList中吗?

最简单的方法是什么? (我需要打开服务器验证)

1 个答案:

答案 0 :(得分:3)

  

这是因为所选的值   它不在DropDownList中   首先送到页面?

是。您可能会注意到,当您进行回发时,您的下拉列表将不包含任何项目,是的,这是因为您在客户端添加了项目。您添加到客户端上的控件的任何项目都是服务器完全不知道的。因此,您的服务器验证将始终失败,因为该字段是必需的。

事实上,使用客户端脚本动态添加项目会触发EventValidation来抱怨可能存在安全问题,并且您必须在EnableEventValidation中将false设置为<%@ Page %> }指令能够发布。

解决这个问题的最佳方法是

  1. 在服务器端生成您的项目,或

  2. 不使用服务器控件(使用常规的nonasp.net选择列表)并通过查看发布的值在服务器上手动验证它。