Wie erstelle ich ein Autocomplete TextBox in C#, das an eine Datenquelle gebunden ist?
Ich werde mich hier melden, ich habe gute Erfahrungen mit jQuery Autocomplete gemacht. Eine Dokumentation finden Sie unter docs.jquery.com/Plugins/autocomplete.
Wie erstelle ich ein Autocomplete TextBox in C#, das an eine Datenquelle gebunden ist?
Sie können entweder jQuery Autocomplete oder ASP.NET AJAX Toolkit Autocomplete verwenden
Ich werde mich hier melden, ich habe gute Erfahrungen mit jQuery Autocomplete gemacht. Eine Dokumentation finden Sie unter docs.jquery.com/Plugins/autocomplete.
Ich benutze das AutoComplete-Feature des AjaxControl Toolkits.
Versuchen Sie das: .aspx Seite
Jetzt automatisch aus der Datenbank befüllen:
public static List GetCompletionList(string prefixText, int count)
{
return AutoFillProducts(prefixText);
}
private static List 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 countryNames = new List();
using (SqlDataReader sdr = com.ExecuteReader())
{
while (sdr.Read())
{
countryNames.Add(sdr["ProductName"].ToString());
}
}
con.Close();
return countryNames;
}
}
}
Jetzt erstellen Sie eine gespeicherte Prozedur, die die Produktdetails abhängig vom ausgewählten Produkt aus dem Auto-Complete-Textfeld abruft.
Create Procedure GetProductDet
(
@ProductName varchar(50)
)
as
begin
Select BrandName,warranty,Price from ProdcutMaster where ProductName=@ProductName
End
Erstellen Sie eine Funktion, um Produktdetails abzurufen:
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();
//TextBox aus DataTable binden
txtbrandName.Text =dt.Rows[0]["BrandName"].ToString();
txtwarranty.Text = dt.Rows[0]["warranty"].ToString();
txtPrice.Text = dt.Rows[0]["Price"].ToString();
}
Auto-PostBack sollte true sein
Jetzt rufen Sie einfach diese Funktion auf
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
//Methode aufrufen und Werte übergeben
GetProductMasterDet(TextBox1.Text);
}
1-Installieren Sie das AjaxControl Toolkit einfach über Nugget
PM> Install-Package AjaxControlToolkit
2-dann im Markup
3- im Code-Behind : um die Vorschläge zu erhalten
[System.Web.Services.WebMethodAttribute(),System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefixText, int count, string contextKey) {
// Array von Filmen erstellen
string[] movies = {"Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II"};
// Übereinstimmende Filme zurückgeben
return (from m in movies where m.StartsWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray();
}
Quelle: http://www.asp.net/ajaxlibrary/act_autocomplete_simple.ashx
protected void Page_Load(object sender, EventArgs e)
{
autocomplete();
}
protected void autocomplete()
{
Database p = new Database();
DataSet ds = new DataSet();
ds = p.sqlcall("select [name] from [stu_reg]");
int row = ds.Tables[0].Rows.Count;
string abc="";
for (int i = 0; i < row;i++ )
abc = abc + ""+ds.Tables[0].Rows[i][0].ToString()+"";
datalist1.InnerHtml = abc;
}
Hier ist Database eine Datei (Database.cs), in der ich eine Methode namens sqlcall erstellt habe, um Daten aus der Datenbank abzurufen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.