一只萌萌小番薯
2021-06-30 18:13:17
我們有條件將文本框動(dòng)態(tài)添加到 ASP 用戶(hù)控件,如下所示:if (conditionIsTrue) { TextBox textField = new TextBox(); Panel.controls.Add(textField);}我想添加一個(gè)事件偵聽(tīng)器,當(dāng)用戶(hù)未聚焦或完成編輯 TextBox 時(shí),該偵聽(tīng)器左填充 TextBox 值。我嘗試了以下 C# 實(shí)現(xiàn),但由于某種原因,偵聽(tīng)器沒(méi)有處理這些值。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'); }}有沒(méi)有辦法可以在 ASP 控件上的 JavaScript 中實(shí)現(xiàn)事件偵聽(tīng)器,但在 C# 代碼中動(dòng)態(tài)生成 TextBox 期間/時(shí)添加 JavaScript 偵聽(tīng)器屬性?
1 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
將此添加到后面的代碼中。
textField.AutoPostBack = true;
但是,如果您所做的只是添加一些零填充,而您在LeadingZero_Handler. 這為您節(jié)省了回傳。
<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)");
添加回答
舉報(bào)
0/150
提交
取消