我们有条件将文本框动态添加到 ASP 用户控件,如下所示:if (conditionIsTrue) { TextBox textField = new TextBox(); Panel.controls.Add(textField);}我想添加一个事件侦听器,当用户未聚焦或完成编辑 TextBox 时,该侦听器左填充 TextBox 值。我尝试了以下 C# 实现,但由于某种原因,侦听器没有处理这些值。if (conditionIsTrue) { TextBox textField = new TextBox(); textField.TextChanged += new EventHandler(LeadingZero_Handler); Panel.controls.Add(textField)}public void LeadingZero_Handler(object sender, EventArgs e){ int FieldLength = 10; if((TextBox)sender.Text.Length < FieldLength) { (TextBox)sender.Text = (TextBox).sender.Text.PadLeft(FieldLength,'0'); }}有没有办法可以在 ASP 控件上的 JavaScript 中实现事件侦听器,但在 C# 代码中动态生成 TextBox 期间/时添加 JavaScript 侦听器属性?
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
将此添加到后面的代码中。
textField.AutoPostBack = true;
但是,如果您所做的只是添加一些零填充,而您在LeadingZero_Handler. 这为您节省了回传。
<script type="text/javascript">
function LeadingZero(element) {
var str = element.value;
var padding = "0000000000";
if (str.length < 10) {
element.value = padding.substring(0, padding.length - str.length) + str;
}
}
</script>
然后将脚本添加到 TextBox 而不是 AutoPostBack 和 TextChanged 处理程序。
textField.Attributes.Add("onblur", "LeadingZero(this)");
添加回答
举报
0/150
提交
取消