由于要动态评估结构,我想以表单形式动态添加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,我将不会调用任何其他方法来检查或启动另一个方法。