2014-09-25 114 views
0

我有一个表单,我使用的是一个自动填充文本框(使用ajax自动填充扩展器)。
自动完成功能正常运行。但是,当我尝试从数据库中获取数据并尝试在我的表单中显示它时,它不会在窗体上显示。从数据库中提取数据到自动填充文本框时出错

只要我从页面评论ajax自动完成扩展器,所有值都会显示。为什么会发生这种情况?

我需要我的表单中的自动完成功能。

<asp:TextBox ID="txtContactsSearch" runat="server" autopostback="True"></asp:TextBox> 
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers" 
MinimumPrefixLength="2" 
CompletionInterval="100" EnableCaching="false" CompletionSetCount="10" 
TargetControlID="txtContactsSearch" 
ID="AutoCompleteExtender1" runat="server" FirstRowSelected = "false"> 
</cc1:AutoCompleteExtender> 

public void getdata() 
{ 
Datatable dt=objdal.getdata(); 
Datarow dr=dt=.Rows[0]; 
txtContactsSearch.Text=dr["contact"].Tostring(); 
    //sililar code for remaining textboxes on form 
} 
+1

任何代码webservice的方法是什么?我不能猜你怎么实现它 – 2014-09-25 07:01:14

+1

你什么时候调用'getdata()'?我的意思是哪个事件 – Shaharyar 2014-09-25 07:21:32

+0

在我的表单中的另一个文本框的textchanged事件 – user3024200 2014-09-25 07:25:31

回答

0

Ajax的自动完成加

OnClientItemSelected = “mycustomers” OnClientShowing =“clientShowing

 Call mycustomers() and clientShowing() in Javascript 

     Function mycustomers(){ 
     var str = $('#<%=txtname.ClientID %>').val(); 
     var partsOfStr = str.split(","); 
     $.trim("partsOfStr"); 

     //spilt your string like this 
     $('#<%=txtname.ClientID %>').val(partsOfStr[0]); 
     $('#<%=txtcontact.ClientID %>').val(partsOfStr[1]); 


     } 

     function clientShowing(source, args) { 
     var popup = source._completionListElement; 
     var height = popup.scrollHeight; 
     var width = popup.scrollWidth; 
     source._popupBehavior._element.style.height = "130px"; 
     source._popupBehavior._element.style.zIndex = 100000; 
     //This iframe's height and width should be smaller than the CompletionList but bigger  than the DropDownList 
     var iframe1 = "<IFRAME id='iframe1' style=' height:200px; width:10px; position:absolute; z-index:99999;border:0px; border-style:none; border-width:0px; ' ></IFRAME>"; 
     popup.innerHTML = iframe1 + popup.innerHTML; 
    } 

呼叫你的.cs页

[System.Web.Script.Services.ScriptMethod()] 
    [System.Web.Services.WebMethod (EnableSession=true)] 


    public static List<string> SearchCustomers(string prefixText, int count) 
    { 
     sql = Select Name+ ',' + Contact+ ',' as Name From Table where Name Like '%'[email protected]+'%' 

     // Find the datatable or Dataset 

     // THEN add 
     List<string> Contact= new List<string>(); 
     for (int i = 0; i < dt.Rows.Count; i++) 
     { 

      Company.Add(dt.Rows[i]["Name"].ToString()); 

     } 
     return Contact; 
    } 
     }