C# 自动回写防止按钮单击
我有一个asp.net页面,上面有许多控件,包括:C# 自动回写防止按钮单击,c#,html,asp.net,events,C#,Html,Asp.net,Events,我有一个asp.net页面,上面有许多控件,包括: 一个带有autopostback=true的文本框,并实现了服务器端textchanged事件 实现了服务器端单击事件的按钮 一旦用户离开控件(即焦点丢失),文本框就会执行回发。问题是,如果用户碰巧更改了值,然后在不离开文本框的情况下按下按钮,则单击按钮时文本框将执行回发,但按钮单击将丢失 在这种情况下,如何强制文本框和按钮事件连续触发 谢谢试试: ASPX: 您可以延迟从文本框回发,并在单击按钮时取消回发。要执行此操作,请将下面的代码添加到P
autopostback=true
的文本框,并实现了服务器端textchanged
事件您可以延迟从文本框回发,并在单击按钮时取消回发。要执行此操作,请将下面的代码添加到
Page\u PreRender
方法中:
protected void Page_PreRender(object sender, EventArgs e)
{
Button1.OnClientClick = string.Format("if(window.{0}Timeout){{ clearTimeout(window.{0}Timeout); }}",
TextBox1.ClientID);
TextBox1.Attributes["onChange"] = string.Format("javascript:window.{0}Timeout = setTimeout(\"{1}\", 500); return;",
TextBox1.ClientID,
ClientScript.GetPostBackEventReference(TextBox1, ""));
}
用户如何单击按钮而不离开文本框?按钮单击始终强制将焦点保留在文本框上,并将焦点设置为按钮。。。您可以尝试在请求之前添加一些延迟…我的意思是,他在按下按钮之前不会离开文本框。ie只要他点击按钮,焦点就会消失,文本框就会自动返回。但是按钮单击事件不会触发,然后为两个控件指定相同的事件名称
function EnterEvent(e) {
if (e.keyCode == 13) {
__doPostBack('<%=Button1.UniqueId%>', "");
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
}
protected void Page_PreRender(object sender, EventArgs e)
{
Button1.OnClientClick = string.Format("if(window.{0}Timeout){{ clearTimeout(window.{0}Timeout); }}",
TextBox1.ClientID);
TextBox1.Attributes["onChange"] = string.Format("javascript:window.{0}Timeout = setTimeout(\"{1}\", 500); return;",
TextBox1.ClientID,
ClientScript.GetPostBackEventReference(TextBox1, ""));
}