0

コントロールを.csファイルとして持っており、コントロールを動的に追加すると、このcsファイルがプレースホルダーに追加されます。テーブルが初めて作成されると、特定の行がスキップされ、これらのスキップされた行には、ドロップダウンの選択されたインデックス変更イベントが表示されます。

ここで、selectedindexchangedイベントにこれらの行を追加すると、行は追加されますが、それに関連付けられている必須フィールドはソースにレンダリングされません。初めて追加された必須フィールドバリデーターのみが表示されます。

選択したインデックス変更イベントで作成されたこの行を検証する必要がありますか?ありがとうございます。それでは、お元気で

これがコードです:)

メソッドAddInputが呼び出され、テキストテキストボックスとバリデーターが渡され、このコントロールに追加されます。

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>");

}
4

0 に答える 0