就是在这个控件的Text被服务端赋值的时候,希望马上知道是赋的什么值,用这些值分别作出响应处理,谢谢

解决方案 »

  1.   

    使用从TextBox继承来的TextChanged事件
      

  2.   

    由于控件的autopostpack没有设置为true,所以即使TextChanged事件也无法获取
      

  3.   

    你可以在控件里面自己定义一个属性MyText,外面赋值的时候通过它传递给Text,
    string MyText
    {
      get
      { return this.Text;
       }
      set
      { 
        this.Text = value;
         这里就可以写你想做的操作   }
    }
      

  4.   

    谢谢lindping(罗将神),
    还有其它方法吗
      

  5.   

    你所说的“希望马上知道是赋的什么值,用这些值分别作出响应处理” 是在外面调用的地方做处理,还是控件内部做处理?如果是控件内部,那么上面的写法应该可以满足你的要求。如果是外面调用的地方,那么可以给控件加一个自定义事件,检测控件text值的变化。当text被赋值的时候触发该事件。public event   EventHandler SetValue;
    protected  void OnSetValue(EventArgs e)
    {
    if (SetValue!= null)
    SetValue(this,e);
    }string MyText
    {
      get
      { return this.Text;
       }
      set
      { 
        this.Text = value;
        OnSetValue(EventArgs.Empty);
       }
    }这样在调用页面就可以添加处理该事件的方法
    void  myTextBox_SetValue(object sender, System.EventArgs e)
    {
      .....
    }
      

  6.   

    因为从控件TextBox继承来的,所以这个控件已经拥有属性Text了,我肯定是要用这个属性而不会另外设置一个属性的,除非是重载这个属性进行处理,然后这个控件的text属性载外部被赋予值的
    时候我内部可以即时知道并作出反应.
      

  7.   

    重载这个属性也很简单啊public new  string Text
    {
          get
          {
                string text1 = (string) this.ViewState["Text"];
                if (text1 != null)
                {
                      return text1;
                }
                return string.Empty;
          }
          set
          {
                this.ViewState["Text"] = value;
                 //触发自定义事件      }
    }