Динамическое управление с обработчиком событий - PullRequest
0 голосов
/ 31 мая 2019

Я хочу динамически добавлять элементы ASP.NET (например, TextBox) в форму, потому что я динамически оцениваю структуру.

protected UCLabelTextbox generateLabelTextbox ()
var ctrl = (UCLabelTextbox) Page.LoadControl 
("UserControls/UCLabelTextbox.ascx");

var value = (TextBox) ctrl.FindControl ("value");
value.ID = "EdtLength"; 
value.Attributes.Add ("type", "number");
value.Attributes.Add ("min", "50");
value.Attributes.Add ("max", "100");
value.TextChanged += EventTextChanged;
/*
var js = "onValueChanged (this.value, " 50, 100);";
value.Attributes.Add ("onchange", js);
*/
return ctrl;

TextBox должен вызываться при создании определенных событий для проверки ввода или выполнения дальнейших действий (пересчетов).

UCLabelTExtbox.ascx

<div class="table-row">
<asp:TextBox runat="server" ID="value" 
OnTextChanged="EventTextChanged"/>
</div>

UCLabelTExtbox.ascx.cs

public partial class UCLabelTextbox : UserControl
{
    protected void Page_Load (object sender, EventArgs e)
    {
        value.TextChanged += EventTextChanged;
    }

    public void EventTextChanged (object sender, EventArgs e)
    {
        var tb = sender as TextBox;
        if (tb != null)
        {
            // do something
        }
    }
}

Но событие никогда не вызывается.

Я не хочу определять динамический список с различными элементами. Если есть TextBox или DropDownList, я не хочу вызывать какой-либо другой метод для проверки или запуска другого метода.

...