.NET验证器不起作用

时间:2015-11-24 21:07:41

标签: c# asp.net

我有这样的简单页面Page.aspx:

<asp:Content ID="Content2" runat="server">
  <asp:PlaceHolder ID="phNewAddress" runat="server" />
</asp:Content>

在代码背后是:

protected override void Page_Load(object sender, EventArgs e)
{
  AddressDetail xControl = (AddressDetail)Page.LoadControl("AddressDetail.ascx");
  phNewAddress.Controls.Add(xControl);
}

AddressDetail.ascx是:

  <asp:TextBox ID="address_name" runat="server" />
  <asp:RequiredFieldValidator ID="rfv" runat="server"
    ControlToValidate="address_name" ErorMessage="Required" ValidationGroup="save">*
  </asp:RequiredFieldValidator>

  <asp:DropDownList ID="address_state" runat="server" AutoPostBack="true" /> 

  <asp:Button ID="btnSave" runat="server" Text="Save" ValidationGroup="save" OnClick="btnSave_Click" />

DropDownList address_state是从数据源绑定的。

现在。页面加载后我按下保存按钮,验证器不起作用。 但是如果我改变DropDownList,那么火回发,然后按Save按钮,验证器工作正常。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我猜测验控件与viewstate一起使用,将以下代码从Page_load事件移到Page_Init事件,看看它是否有效。

protected override void Page_Init(object sender, EventArgs e)
{
  AddressDetail xControl = (AddressDetail)Page.LoadControl("AddressDetail.ascx");
  phNewAddress.Controls.Add(xControl);
}