分享

extaspnet 如何给文本框添加失去焦点的后台事件

 绚爷好人图书馆 2014-06-24

此需求常见于用户注册时的用户名重复判断,可是extaspnet 的文本框没有提供这个事件,怎么办?

 

分析:

 

extaspnet的Textbox只提供了一个OnTextChanged事件,但这个事件只在表单提交时才会触发

那就给这个文本框添加一个失去焦点的提交事件不就行了(extjs)

 

 

前台代码:

  1. <form id="form1" runat="server">  
  2. <ext:PageManager ID="PageManager1" runat="server" />  
  3. <ext:Form ID="Form2" runat="server">  
  4.     <Rows>  
  5.         <ext:FormRow>  
  6.         <Items>  
  7.             <ext:TextBox ID="TextBox1" runat="server" Label="用户名" Text="" Required="true"  OnTextChanged="TextBox1_TextChanged"></ext:TextBox>  
  8.         </Items>  
  9.         </ext:FormRow>  
  10.         <ext:FormRow>  
  11.         <Items>  
  12.             <ext:TextBox ID="TextBox2" runat="server" Label="密码" Text="" TextMode="Password"></ext:TextBox>  
  13.         </Items>  
  14.         </ext:FormRow>  
  15.     </Rows>  
  16. </ext:Form>  
  17. </form>  

 

后台代码:

 

  1. protected override void Render(HtmlTextWriter writer)  
  2. {  
  3.     StringWriter strWriter = new StringWriter();  
  4.     base.Render(new HtmlTextWriter(strWriter));  
  5.     writer.Write(strWriter.ToString().Replace("id:/"" + TextBox1.ClientID + "/",",  
  6.         "id:/"" + TextBox1.ClientID + "/",listeners: {'blur': function(f){if (f.getValue()!='') {__doPostBack('','');}}},"));  
  7. }  
  8.   
  9. protected void TextBox1_TextChanged(object sender, EventArgs e)  
  10. {  
  11.     ExtAspNet.Alert.Show(TextBox1.Text+" 这个用户名重复了");  
  12. }  

嗯,这里有点技巧,是改写了extaspnet默认的extjs输出,添加一个监听事件

测试一下,达到需求了,Textbox1失去焦点且非空时 触发了TextBox1_TextChanged事件

如有更简洁的方法,可回复告知我,一起学习

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多