还是有关WEB用户控件内子控件的相关问题,江雨.NET,思归,孟兄级别的大侠们这边儿有请!急急急!在线等待!!!!

qq_net 2003-12-09 11:17:57
原贴:
TextBox的Textchanged事件为什么只有在回车时,才执行,
我想输入一个字符执行一次,怎么做

后来见 江雨.NET 给予了答付:
TextBox1.Attributes.Add("onkeyup","__doPostBack('TextBox1','')");
我在一WEB页面内对此已经试过了,果然奏效!非常感谢!
========================================================================
而现在我要把文本框TextBox1作为一WEB用户控件内的一子控件,在其它WEB页面引用此WEB用户控件时,也要达到同样的效果,应该怎么作呢?
1.我在WEB用户控件(比如WebUserControl1)的page_Load事件里这样写

//this.TextBox1.Attributes.Add("onkeyup","__doPostBack(TextBox1,'')");

this.TextBox1.Attributes.Add("onkeyup","__doPostBack('"+this.UniqueID+"_TextBox1,'')");

2.在TextBox1_TextChanged事件里作如下处理(把焦点及光标还原)
Page.RegisterStartupScript("FOCUS", "<script language=javascript>document.all."+this.UniqueID+"_TextBox1.focus();with(document.selection.createRange()){moveStart(\"character\",document.all."+this.UniqueID+"_TextBox1.value.length+1);collapse();select();}</script>");
3.问题描述:输入第一个字符时,触发Page_Load事件,但以后的输入就不能触发啦,还请大侠们给开个改良的"药方",非常感谢!!!!!
...全文
50 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
极限999 2003-12-13
  • 打赏
  • 举报
回复
up

qq_net 2003-12-13
  • 打赏
  • 举报
回复
是呀,我也感觉这样不爽,可是客户确硬要这样,我也没有办法呀,还请各位大哥多多帮忙呀!
saucer 2003-12-12
  • 打赏
  • 举报
回复
it is really a bad idea to do postback on each onkeyup, there is a good reason why ASP.NET doesn't offer those client side events as server events, because the page will flicker like hell, your users will complain

but if you insist, try to implement the marker interface INamingContainer (no method needs to be implemented):

class YourControl : ...., INamingContainer
Jouzen 2003-12-12
  • 打赏
  • 举报
回复
这样按键刷新的确不是一个好的办法,来回刷新会让人受不了的。
可以用xmlhttp的方法。
webdiyer 2003-12-11
  • 打赏
  • 举报
回复
帖出你的你码来看看。
qq_net 2003-12-11
  • 打赏
  • 举报
回复
好象是不行呀,高手们呀,帮帮小弟吧!
qq_net 2003-12-11
  • 打赏
  • 举报
回复
这个问题难道难位了各位吗?唉!
qq_net 2003-12-09
  • 打赏
  • 举报
回复
高手,多谢,试试先!
另外还请其它高手们一齐讨论!
webdiyer 2003-12-09
  • 打赏
  • 举报
回复
你的this.TextBox1.Attributes.Add("onkeyup","__doPostBack('"+this.UniqueID+"_TextBox1,'')");
这段代码是否放在了 if(!Page.IsPostBack)块中了?应该放在外面。另外注册回发脚本应该用 Page.GetPostBackEventReference()方法,而不是直接将 __doPostBack()这个asp.net页框架自动产生的客户端脚本加到代码中,因为如果你的页面上没有LinkButton或者Button等需要调用这个脚本来回的的控件,asp.net页框架就不会产生这个脚本,因此你的代码就无法运行,你可以把上面的代码改成这样:

this.TextBox1.Attributes.Add("onkeyup",Page.GetPostBackEventReference(this.TextBox1));

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧