AutoCompleteExtender控件使用示例以及BUG

功能简介:最近在做个凭证单子,里面的一些编辑框是需要联想功能的。
功能实现:在AJAX功能的吸引下,我GOOGLE到了MS开发的 ASP.NET 2.0 AJAX Extensions 1.0是基于.NET FRAMEWORK 2.0开发的,正合我意,下面利用 AutoCompleteExtender控件来实现我需要的功能
部分主要代码如下:
HTML界面代码
     < cc1:ToolkitScriptManager  ID ="ToolkitScriptManager1"  runat ="server" >
    
</ cc1:ToolkitScriptManager >
    
< div >
        
< asp:TextBox  ID ="TextBox1"  runat ="server" ></ asp:TextBox >
        
&nbsp;&nbsp;
        
< cc1:AutoCompleteExtender  ID ="AutoCompleteExtender1"  MinimumPrefixLength ="1"  
                CompletionInterval
="300"
                EnableCaching
="true"
                CompletionSetCount
="10"
 BehaviorID
="AutoCompleteEx"  runat ="server"  ServiceMethod ="GetCompletionList"
            UseContextKey
="True"  TargetControlID ="TextBox1" >
                
< Animations >
                    
< OnShow >
                        
< Sequence >
                            
                            
< OpacityAction  Opacity ="0"   />
                            
< HideAction  Visible ="true"   />
                            
< ScriptAction  Script ="
                                // Cache the size and setup the initial size
                                var behavior = $find('AutoCompleteEx');
                                if (!behavior._height) {
                                    var target = behavior.get_completionList();
                                    behavior._height = target.offsetHeight - 2;
                                    target.style.height = '0px';
                                }"
  />
                                < Parallel Duration = " .1 " >
                                
< FadeIn  />
                                
< Length PropertyKey = " height "  StartValue = " 0 "  EndValueScript = " $find('AutoCompleteEx')._height "   />
                            
</ Parallel >
                        
</ Sequence >
                    
</ OnShow >
                    
< OnHide >
                        
< Parallel Duration = " .1 " >
                            
< FadeOut  />
                            
< Length PropertyKey = " height "  StartValueScript = " $find('AutoCompleteEx')._height "  EndValue = " 0 "   />
                        
</ Parallel >
                    
</ OnHide ></ Animations >
        
</ cc1:AutoCompleteExtender >
        
< script type = " text/javascript " >
            
//  Work around browser behavior of "auto-submitting" simple forms
             var  frm  =  document.getElementById( " aspnetForm " );
            
if  (frm) {
                frm.onsubmit 
=   function () {  return   false ; };
            }
        
</ script >
    
< input  type ="submit"  style ="display:none;"   />
    
</ div >

验证代码(CS)如下:
     public   string [] GetAutoComplete( string  prefixText,  int  count)
    {
        
string  xm  =   "" ;
        
string  fixxm  =   "" ;
        
if  (count  ==   0 )
        {
            count 
=   10 ;
        }

        
if  (prefixText.Equals( " " ))
        {
            
return   new   string [ 0 ];
        }

        List
< string >  items  =   new  List < string > (count);

        ClassLibrary.SzsData.szsDataTable sd 
=   new  ClassLibrary.SzsData.szsDataTable();
        ClassLibrary.SzsDataTableAdapters.szsTableAdapter sta 
=   new  ClassLibrary.SzsDataTableAdapters.szsTableAdapter();
        sd 
=  sta.GetData();
        
int  rCount  =   0 ;
        
for  ( int  i  =   0 ; i  <  sd.Rows.Count; i ++ )
        {
            xm 
=  sd.Rows[i][ " 姓名 " ].ToString();
            
if  (xm.Length  >  prefixText.Length)
            {
                fixxm 
=  xm.Remove(prefixText.Length, xm.Length  -  prefixText.Length);
                
if  (fixxm  ==  prefixText)
                {
                    items.Add(sd.Rows[i][
" 姓名 " ].ToString());
                    rCount
++ ;
                    
if  (rCount  >=   10 )
                    {
                        
break ;
                    }
                }
            }
        }

         return  items.ToArray();
    }

控件存在的BUG:如果需要返回数字类型的,结果会在编辑框下显示UNDEFINE,也许是JAVASCRIPT中的单引出现的问题,所以例如下面的方法:
     public   string [] GetStringLength( string  prefixText)
    {
        
string [] items  =   new   string [ 10 ];
        items[
0 =  prefixText.Length.ToString();
        
return  items;
    }
则需修改为以下:
     public   string [] GetStringLength( string  prefixText)
    {
        
string [] items  =   new   string [ 10 ];
        items[
0 =  "'"+prefixText.Length.ToString()+"'";
        
return  items;
    }
希望下次MS在发布该组控件同时能解决此BUG。

转载于:https://www.cnblogs.com/lify0407/archive/2007/10/26/938302.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值