2010-10-04 7 views

Répondre

4

J'utilise AutoComplete de boîte à outils ajaxcontrol

+4

Je ne recommanderais pas (personnellement) cette solution. En 2010, quand cela a été répondu peut-être. Maintenant, ne l'utilisez pas. Il existe de meilleurs moyens de le faire en utilisant JavaScript, jquery, etc. – Liam

1

1 Installez AjaxControl Toolkit facilement Nugget

PM> Install-Package AjaxControlToolkit 

2-puis dans le balisage

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
</asp:ToolkitScriptManager> 

<asp:TextBox ID="txtMovie" runat="server"></asp:TextBox> 

<asp:AutoCompleteExtender ID="AutoCompleteExtender1" TargetControlID="txtMovie" 
    runat="server" /> 

3- dans le code-behind: à obtenir les suggestions

[System.Web.Services.WebMethodAttribute(),System.Web.Script.Services.ScriptMethodAttribute()] 
    public static string[] GetCompletionList(string prefixText, int count, string contextKey) { 
     // Create array of movies 
     string[] movies = {"Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II"}; 

     // Return matching movies 
     return (from m in movies where m.StartsWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray(); 
    } 

source: http://www.asp.net/ajaxlibrary/act_autocomplete_simple.ashx

3

Essayez ceci: page .aspx

<td> 
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"OnTextChanged="TextBox1_TextChanged"></asp:TextBox> 
<asp:AutoCompleteExtender ServiceMethod="GetCompletionList" MinimumPrefixLength="1" 
    CompletionInterval="10" EnableCaching="false" CompletionSetCount="1" TargetControlID="TextBox1" 
    ID="AutoCompleteExtender1" runat="server" FirstRowSelected="false"> 
     </asp:AutoCompleteExtender> 

Maintenant Pour la base de données auto peupler:

public static List<string> GetCompletionList(string prefixText, int count) 
    { 
     return AutoFillProducts(prefixText); 

    } 

    private static List<string> AutoFillProducts(string prefixText) 
    { 
     using (SqlConnection con = new SqlConnection()) 
     { 
      con.ConnectionString = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString; 
      using (SqlCommand com = new SqlCommand()) 
      { 
       com.CommandText = "select ProductName from ProdcutMaster where " + "ProductName like @Search + '%'"; 
       com.Parameters.AddWithValue("@Search", prefixText); 
       com.Connection = con; 
       con.Open(); 
       List<string> countryNames = new List<string>(); 
       using (SqlDataReader sdr = com.ExecuteReader()) 
       { 
        while (sdr.Read()) 
        { 
         countryNames.Add(sdr["ProductName"].ToString()); 
        } 
       } 
       con.Close(); 
       return countryNames; 
      } 
     } 
    } 

Maintenant: créez une procédure stockée qui récupère les détails du produit en fonction du produit sélectionné dans la zone de texte Auto Complete.

Create Procedure GetProductDet 
( 
@ProductName varchar(50)  
) 
as 
begin 
Select BrandName,warranty,Price from ProdcutMaster where [email protected] 
End 

Créer un nom de fonction pour obtenir les détails du produit ::

private void GetProductMasterDet(string ProductName) 
    { 
     connection(); 
     com = new SqlCommand("GetProductDet", con); 
     com.CommandType = CommandType.StoredProcedure; 
     com.Parameters.AddWithValue("@ProductName", ProductName); 
     SqlDataAdapter da = new SqlDataAdapter(com); 
     DataSet ds=new DataSet(); 
     da.Fill(ds); 
     DataTable dt = ds.Tables[0]; 
     con.Close(); 
     //Binding TextBox From dataTable 
     txtbrandName.Text =dt.Rows[0]["BrandName"].ToString(); 
     txtwarranty.Text = dt.Rows[0]["warranty"].ToString(); 
     txtPrice.Text = dt.Rows[0]["Price"].ToString(); 
    } 

après la baisse automatique doit être vrai

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" OnTextChanged="TextBox1_TextChanged"></asp:TextBox> 

Maintenant, appelez simplement cette fonction

protected void TextBox1_TextChanged(object sender, EventArgs e) 
    { 
     //calling method and Passing Values 
     GetProductMasterDet(TextBox1.Text); 
    } 
Questions connexes