动态添加的验证器不验证(甚至没有添加到源)

时间:2012-05-23 07:14:59

标签: asp.net validation requiredfieldvalidator

我有一个.cs文件控件,我在其中动态添加控件,这个cs文件被添加到占位符。第一次创建表时会跳过某些行,并且这些跳过的行会显示选定的索引更改事件的下拉列表。

现在,当我在selectedindexchanged事件上添加这些行时,会添加该行,但是与之相关的必需字段甚至不会呈现给源。 只显示第一次添加必填字段验证器。

我要求在选定的索引更改事件上创建的这些行是否有效? 谢谢&此致

这是代码:)

调用AddInput方法,其中id是文本框和传递验证程序的文本,它将被添加到此控件中。

protected void AddInput(string id, string text, System.Web.UI.WebControls.TextBox textbox, System.Web.UI.WebControls.BaseValidator validator)
{
    AddLiteral(@"<tr>");
    AddInputTDLedetekst();

    if (text != string.Empty)
    {
        System.Web.UI.WebControls.Label labNavn = new Label();
        labNavn.AssociatedControlID = id;
        labNavn.Text = text;
        labNavn.ID = id + "_newLabel";

        AddLiteral(labNavn);
        if (text != string.Empty && !text.Trim().Contains(":"))
            AddLiteral(":");
        if (validator != null && textbox.Enabled)
            if (validator is RequiredFieldValidator)
            {
                if (validator.ErrorMessage == string.Empty)
                    validator.ToolTip = HentOrd("Feltet skal udfyldes");
                AddLiteral(@"<span class=""mandatoryfield"">*</span>");
            }
    }
    AddLiteral(@"</td>");

    AddInputTDInput();
    if (textbox.CssClass == string.Empty)
        if (textbox.TextMode == TextBoxMode.MultiLine)
            textbox.CssClass = "textarea";
        else
            textbox.CssClass = "textinput";

    textbox.ID = id;
    AddLiteral(textbox);

    if (validator != null)
    {
        validator.ForeColor = System.Drawing.Color.Orange;
        validator.Style.Add("Font-Size", "8pt");
        validator.Style.Add("Font-Weight", "bold");

        if (string.IsNullOrEmpty(validator.ErrorMessage))
        {
            validator.ForeColor = System.Drawing.Color.Orange;
            validator.Style.Add("Font-Size", "8pt");
            validator.Style.Add("Font-Weight", "bold");
            validator.ErrorMessage = HentOrd("feltet skal udfyldes");
        }
        validator.Display = ValidatorDisplay.Static;
        validator.SetFocusOnError = true;
        if (string.IsNullOrEmpty(validator.ControlToValidate))
            validator.ControlToValidate = id;
        validator.CssClass = "ValidationError";
        validator.SetFocusOnError = true;
        validator.ID = "_rfv" + id;
        AddLiteral(validator);
    }
    AddLiteral(@"</td>");

    AddLiteral(@"</tr>");

}

0 个答案:

没有答案