鉴定说明书认股鉴定表合同书调查报告市场调查自查报告调查表案例

最新文档

使用AJAX的Timer会让TextBox失去焦点的解决办法


  文件类型:DOC/Microsoft Word  文件大小:字节

更多搜索:使用  AJAX  Timer  TextBox  失去  焦点  解决办法  
使用AJAX的Timer会让TextBox失去焦点的解决办法:
因为AJAX的Timer元件会对UpdatePanel进行页面更新, 因此会让UpdatePanel内的TextBox失去焦点(Focused),这是正常的现象,如果要防止这样的行为发生,就必须要使用下列的方法来解决:
1. 给所有UpdatePanel中的TextBox添加attribute:onfocus="txtFocus()"
例如
2. 在页面的标签下方添加如下javascript函数:
<br> function txtFocus()
{
var exp=new Date();
exp.setTime(exp.getTime() + 60*60*1000);
document.cookie = "focusTextBox="+ event.srcElement.id + ";expires=" + exp.toGMTString();
}
这里由于用到了cookies来记录post之前光标停留在哪个TextBox之中,所以ie浏览器必须支持cookies
3. 给UpdatePanel添加OnInit事件:
protected void UpdatePanel1_Init(object sender, EventArgs e)
{
if (this.Request.Cookies["focusTextBox"] != null)
{
string s = this.Request.Cookies["focusTextBox"].Value;//读出post之前光标停留在哪个TextBox之中
string script =
"var inp = $get('" + s + "');" +
"window.setTimeout('var r = inp.createTextRange();r.collapse(false);r.select();', 10);";
ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.Page.GetType(), "ScriptBlock", script, true);
}
}
4. 以上只是普遍的解决方案,如有特殊要求可适当修改代码.主要的思路是在timer触发tick之前,找到合适的时机用javascript将post之前最后停留的TextBox记录到cookies中,然后在post之后UpdatePanel的OnInit事件中再将鼠标的光标重新放置于此TextBox中

·上一篇:衡阳抗冰保电工作简报
·下一篇:基础医学院迎评促建工作简报
下载链接
相关下载
最热搜索
<%=Components.Fun.GetTemplate(Components.Template.TemplateType.Foot)%>