protected override void CreateChildControls() 
{
private TextBox tb = new TextBox ();
Controls.Add(tb)private RequiredFieldValidator RequiredFieldValidator1 = new RequiredFieldValidator();
RequiredFieldValidator1.ControlToValidate=((TextBox)Controls[0]).ID
Controls.Add(RequiredFieldValidator1)
}运行时系统提示说ControlToValidate 参数为空 
找不到 TextBox 的ID那还有什么方法可以实现 RequiredFieldValidator1 效验TextBox
我在这先谢谢大家了

解决方案 »

  1.   

    异常详细信息: System.Web.HttpException: “RequiredFieldValidator1”的 ControlToValidate 属性不能为空。
      

  2.   

    RequiredFieldValidator1.ControlToValidate=((TextBox)Controls[0]).ID这个肯定不行Controls[0]是从哪来的 最少也应该 加Page.Controls[0]
      

  3.   

    我的自定义控件中并没有page对象可以使用(TextBox)Controls[0]).Text=“333”
    来调用tb 的属性 但就是不能获得 它的ID (也就要实现RequiredFieldValidator1.ControlToValidate=“tb")
    不知道其他人有什么好的方法没有
      

  4.   

    那有没有什么方法来效验TextBox的值,要求用客户端脚本程序,弹出提示窗口
      

  5.   

    自定义控件中并没有page对象
    可以用上下文context对象来实现可以用Js脚本程序
      

  6.   

    好象用IValidator接口可以实现,有人会用吗?
      

  7.   

    give it a specific ID, also, make sure your control implements the er interface INamingContainer
    public class YourControl : WebControl, INamingContainer
    {
       private TextBox tb;
       private RequiredFieldValidator RequiredFieldValidator1; protected override void CreateChildControls() 
     {
      
      string TextBoxID = "abc";  tb = new TextBox ();
      tb.ID = TextBoxID;
      Controls.Add(tb)  RequiredFieldValidator1 = new RequiredFieldValidator();
      RequiredFieldValidator1.ID = "req";  RequiredFieldValidator1.ControlToValidate=TextBoxID;
      Controls.Add(RequiredFieldValidator1)
    }}