为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JavaScript 事件处理程序添加到 ASP 控件上动态生成的文本框

如何将 JavaScript 事件处理程序添加到 ASP 控件上动态生成的文本框

一只萌萌小番薯 2021-06-30 18:13:17
我们有条件将文本框动态添加到 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)");


查看完整回答
反对 回复 2021-07-03
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信