如何将JavaScript事件处理程序添加到ASP控件上动态生成的文本框
我们的条件将动态地向ASP用户控件添加文本框,如下所示:如何将JavaScript事件处理程序添加到ASP控件上动态生成的文本框,javascript,c#,asp.net,event-listener,Javascript,C#,Asp.net,Event Listener,我们的条件将动态地向ASP用户控件添加文本框,如下所示: if (conditionIsTrue) { TextBox textField = new TextBox(); Panel.controls.Add(textField); } 我想添加一个事件监听器,当用户取消焦点或编辑完文本框时,它会左键填充文本框值 我尝试了以下C#实现,但由于某些原因,侦听器没有处理这些值 if (conditionIsTrue) { TextBox textField = new T
if (conditionIsTrue) {
TextBox textField = new TextBox();
Panel.controls.Add(textField);
}
我想添加一个事件监听器,当用户取消焦点或编辑完文本框时,它会左键填充文本框值
我尝试了以下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');
}
}
if(条件真实){
TextBox textField=新建TextBox();
textField.TextChanged+=新事件处理程序(LeadingZero\u处理程序);
Panel.controls.Add(文本字段)
}
public void LeadingZero_处理程序(对象发送方,事件参数e)
{
int FieldLength=10;
if((文本框)sender.Text.Length
是否有一种方法可以在ASP控件上用JavaScript实现事件侦听器,但在C代码中动态生成文本框期间/时添加JavaScript侦听器属性 将此添加到代码隐藏中
textField.AutoPostBack = true;
但是,如果您所做的只是添加一些零填充,而在引导零处理程序中没有做其他事情,我建议您使用前端方法。这样可以为您节省回发邮件的时间
<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>
添加textField.AutoPostBack=true代码>作为答案,兄弟,谢谢你。我已经尝试过这个实现,但似乎“onblur”在IE 11中不起作用,或者这个方法有一些根本性的错误。然而,这种方法似乎正被应用到我的元素中,这正是我所要求的。
textField.Attributes.Add("onblur", "LeadingZero(this)");