【发布时间】:2015-02-24 05:51:21
【问题描述】:
我正在尝试在文件后面的代码中使用必填字段验证器,但它显示以下错误。
错误:
找不到“abcd854”的“ControlToValidate”属性引用的控件 ID“TextBox1”
注意:TextBox1 存在于页面中;我已经测试过了。
aspx 页面
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="save" />
</p>
<p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</asp:Content>
Cs 文件
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//RequiredFieldValidator validator = ControlsValidation.AssignRequiredFieldValidatorToControl(TextBox1, "Field is required", "*", "save");
//validator.ControlToValidate = ((TextBox)this.Form.FindControl("MainContent").FindControl("TextBox1")).ID;
RequiredFieldValidator validator = new RequiredFieldValidator();
validator.ID = "abcd" + new Random().Next(100, 1000);
validator.ControlToValidate = ((TextBox)this.Form.FindControl("MainContent").FindControl("TextBox1")).ID;
validator.EnableClientScript = true;
validator.ErrorMessage = "";
validator.Text = "*";
validator.ValidationGroup = "save";
validator.Display = ValidatorDisplay.Dynamic;
this.Controls.Add(validator);
}
}
【问题讨论】:
-
尝试将文本框 id 模式设置为静态
-
没用。运气不好
-
找到控件时删除ID部分 ((TextBox)this.Form.FindControl("MainContent").FindControl("TextBox1"));
标签: c# asp.net requiredfieldvalidator