我的WEB自定义控件里面包含了一个TEXTBOX和一个LABEL(TEXT = "*",FORECOLOR = "RED")。想实现这样的功能,当TEXTBOX里面的TEXT为空的时候,LABEL就显示出来,反之LABEL就不显示。目前已经实现了这个功能,但是每次都需要提交页面一次才可以,我就想用JAVASCRIPT来在客户端实现这个功能,请问可以把JS的代码封装到这个自定义控件里面?如果可以,JS代码应该如何写?

解决方案 »

  1.   

    我的理解是,TEXTBOX的TEXTCHANGE事件发生的时候调用JS方法CHECK(),通常这样做的,<TEXTBOX ONCHANGE = CHECK()>,关键在于这个“ONCHANGE = CHECK()”如何加到代码里面去。
      

  2.   

    这个可以在你的webcontrol的自定义属性里写。
      

  3.   

    现在的代码
        public class wccInput : WebControl
        {
            protected TextBox mvTextBox;
            protected Label mvLabelTip;
            public wccInput()
            {
        this.mvLabelTip = new Label();
                this.mvTextBox = new mvTextBox();
                // 
                // mvLabel
                // 
                this.mvTextBox.Style.Add(HtmlTextWriterStyle.Position, "absolute");
                this.mvTextBox.Style.Add(HtmlTextWriterStyle.Top, "3");
                this.mvTextBox.Style.Add(HtmlTextWriterStyle.Left, "1");
                this.mvTextBox.Height = (Unit)12;
                this.mvTextBox.Width = (Unit)80;
                this.mvTextBox.ID = "mvTextBox1";
                this.mvTextBox.TabIndex = 0;           
              // 
                // mvLabelTip
                // 
                this.mvLabelTip.Style.Add(HtmlTextWriterStyle.Position, "absolute");
                this.mvLabelTip.Style.Add(HtmlTextWriterStyle.Top, "6");
                this.mvLabelTip.Style.Add(HtmlTextWriterStyle.Left, "166");
                this.mvLabelTip.Height = (Unit)12;
                this.mvLabelTip.Width = (Unit)11;
                this.mvLabelTip.ForeColor = System.Drawing.Color.Red;
                this.mvLabelTip.ID = "mvLabelTip";
                this.mvLabelTip.TabIndex = 2;
                this.mvLabelTip.Text = "*";
                this.mvLabelTip.Visible = false;
            }        // </summary>
            // <param name="output"></param>
            protected override void RenderContents(HtmlTextWriter output)
            {
            }    }
      

  4.   

    你可以试下把控件包括在 atlas中,就不会刷新了。
    用javascript有点不方便之处是在控件中各子控件的ID是会把自定义控件前缀加上去再加原来ID生成。所以用javascript会出现ID问题!想想还有没办法解决!有需要Q我 330524561