Veritabanındaki verileri kullanarak açılan açılır listeyi yerleştirmeye çalıştığım basit bir kullanıcı arayüzüne sahibim. Verileri almak için bunu AJAX çağrısı ile yapıyorum.JQuery kullanarak ASP.NET ajax çağrı listesine ekler
private static List<List<string>> componentTypeDropDown = new List<List<String>>();
private void loadDropDownList()
{
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand("SELECT FieldName,FieldLabel FROM dropDownFields", conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
List<String> temp = new List<string>();
temp.Add((string)dr.GetValue(0));
temp.Add((string)dr.GetValue(1));
componentTypeDropDown.Add(temp);
conn.Close();
}
}
[WebMethod]
public static ArrayList getComponentType()
{
ArrayList compType = new ArrayList();
for (int i=0;i<componentTypeDropDown.Count();i++)
{
compType.Add(new { label = componentTypeDropDown[i][0], value = componentTypeDropDown[i][1] });
}
return compType;
}
AJAX çağrı
$.ajax({
type: "POST",
url: "salesQuote.aspx/getComponentType",
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
console.log("karan");
},
error: function() {
alert("Failed to load names");
}
});
Her ben yenilemek ve hatta sunucusunu başarı geri aramasında msg değerini yeniden zamanı yanı önceki değerlere sahip benziyor gibi
C# web yöntemi görünüyor . Örneğin, veritabanımın 1,2 değerine sahip olduğunu söyleyebiliriz. Ajax msg olarak adlandırdığım ilk kez 1,2 değeri 1,2 ise 1,2,2,2 olur. Sunucuyu kapatıp yeniden başladığımda, değer 1,2,1,2,1,2
yöntemini çağırın 'ben bir şekilde bu yöntem çağrıldığını birden çok kez şüpheli pageLoad – wonderbell
loadDropDownList'. Gerçek kod kurulumunu bilmeden emin olamazsınız. Hayır saymayı deneyebilirsiniz. Bir breakpoint tutarak 'loadDropDownList' yöntemine çağrıları. – user3342812
içinde – wonderbell