那你RangeValidator也动态添加,试试看

解决方案 »

  1.   

    生成一个带有id 的textbox,不就可以了
      

  2.   

    RangeValidator是动态的,但是在这句话:
    valTemp.ControlToValidate = "textbox1"
    它找不到textbox1,textbox1确实和本身界面的textbox是不同的,它是在数据流中的.
    不知道该怎样解决.
    如果RangeValidator能动态增加,但是被其ControlToValidate的控件不能动态增加的话,那动态增加RangeValidator的功能不是就只能针对已经存在于界面的控件吗?
    大虾们救救我!!!
      

  3.   

    textbox1确实和本身界面的textbox是不同的?什么意思
      

  4.   

    to 2002pine(我学习,我存在) :
    兄弟,你是不是用过,如果确实可以实现就太好了.我的test代码是这样的
    Td15是一个声明过的存在的table的td.        Dim TdTemp As New System.Web.UI.WebControls.TextBox()
            TdTemp.Attributes.Add("id", "yiyi")
            TdTemp.Attributes.Add("runat", "server")
            Td15.Controls.Add(TdTemp)        Dim valTemp As New System.Web.UI.WebControls.RangeValidator()
            valTemp.Type = ValidationDataType.Integer
            valTemp.MaximumValue = 10000
            valTemp.MinimumValue = 1
            valTemp.ControlToValidate = "yiyi"     '这里错了,找不到yiyi这个控件
            Td15.Controls.Add(valTemp)
      

  5.   

    首先肯定动态添加是可以的
    应该是你的处理上有点问题TextBox tb = new TextBox();
    tb.ID = "t1";
    tb.Text = "32"; RangeValidator rv = new RangeValidator();
    rv.ControlToValidate = "t1";
    rv.MaximumValue = "20";
    rv.MinimumValue = "10";
    rv.ErrorMessage = "hello";

    Panel1.Controls.Add( tb );
    Panel1.Controls.Add( rv );
      

  6.   

    TdTemp.Attributes.Add("id", "yiyi")
            TdTemp.Attributes.Add("runat", "server")-->TdTemp.ID = "yiyi"
      

  7.   

    to dragontt(龙人) :
    textbox1是.vb代码生成的,textbox是在aspx文件中写的控件.虽然生成的结果相同,但是因为我的RangeValidator希望获得textbox1,而RangeValidator本身是在textbox1的同一个.vb文件中生成,所以无法找到该控件将id赋予ControlToValidate.而textbox因为界面已经存在,RangeValidator是可以找到它的.到底能不能在.vb里生成textbox1,然后在textbox1旁边同样用.vb代码加上一个RangeValidator呢??
      

  8.   

    多谢dragontt(龙人) ,已经搞定,但是为什么
    TdTemp.Attributes.Add("id", "yiyi")
    TdTemp.Attributes.Add("runat", "server")-->TdTemp.ID = "yiyi"这两种不是同一个咚咚呢?
      

  9.   

    TdTemp.Attributes.Add是将你添加的key和value的组合
    当作html标记中的一对key=value来处理
    相当于客户端的表示而TdTemp.ID = "yiyi"才是服务器控件的ID声明
    你写成TdTemp.Attributes.Add的确在html中可以看到ID
    不过,对服务器来说,这个控件是不存在的