Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义标签、文本框和RequiredFieldValidator呈现时的Web控件问题_C#_Asp.net - Fatal编程技术网

C# 自定义标签、文本框和RequiredFieldValidator呈现时的Web控件问题

C# 自定义标签、文本框和RequiredFieldValidator呈现时的Web控件问题,c#,asp.net,C#,Asp.net,我创建了一个自定义web控件,它结合了标签、文本框和RequiredFieldValidator。为此,我创建了一个继承表控件的类字段 namespace WebHRIS.Controls { public class Field : Table { private Label lblField; private TextBox tbField; private RequiredFieldValidator rfvField;

我创建了一个自定义web控件,它结合了标签、文本框和RequiredFieldValidator。为此,我创建了一个继承表控件的类字段

namespace WebHRIS.Controls
{
    public class Field : Table
    {
        private Label lblField;
        private TextBox tbField;
        private RequiredFieldValidator rfvField;
        private string _text;
        private string _invalidMessage;
        private string _clientScript;
        private string _controlID;

        public virtual string LabelText
        {
            get { return _text; }
            set { _text = value; }
        }

        public virtual string InvalidMessage
        {
            get { return _invalidMessage; }
            set { _invalidMessage = value; }
        }

        public virtual string ClientScript
        {
            get { return _clientScript; }
            set { _clientScript = value; }
        }

        public virtual string ControlID
        {
            get { return _controlID; }
            set { _controlID = value; }
        }

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            TableRow tr = new TableRow();
            TableCell tc = new TableCell();
            lblField = new Label();
            lblField.Text = _text;
            tc.Controls.Add(lblField);
            tr.Cells.Add(tc);
            tbField = new TextBox();
            tbField.ID = _controlID + this.ID;
            tc = new TableCell();
            tc.Controls.Add(tbField);
            tr.Cells.Add(tc);
            rfvField = new RequiredFieldValidator();
            rfvField.ControlToValidate = tbField.ID;
            rfvField.ErrorMessage = this.InvalidMessage;
            rfvField.EnableClientScript = (this.ClientScript.ToLower() != "false");
            tc = new TableCell();
            tc.Controls.Add(rfvField);
            tr.Cells.Add(tc);
            this.Rows.Add(tr);
        }

        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(writer);
            lblField.RenderControl(writer);
        }
    }
}
我就是这样使用这个控件的

<%@ Register TagPrefix="udc" Namespace="WebHRIS.Controls" Assembly="WebHRIS" %>
<udc:Field ID="fSample" runat="server" LabelText="Sample : " InvalidMessage="ErrorMessage"
                                        ClientScript="false" ControlID="tb" />

请注意,这只是部分代码。现在,我遇到了这样的问题


我想删除“示例:”文本。T.I.A

乍一看,我认为您在渲染方法中获得了第二行文本:

protected override void Render(HtmlTextWriter writer)
{
    base.Render(writer);
    lblField.RenderControl(writer);
}

lblField是标签控件-我敢打赌,通过调用
lblField.RenderControl(writer)
,标签将被第二次写入。尝试删除该行,看看控件是否能正确渲染。

谢谢。。。你是一个救生员