Ich habe eine Gridview und eine Dropdown-Liste in meinem ASP in der C# Ich habe Funktionalität, die es dem Benutzer erlaubt zu wählen, welche Dropdown-Element für jede Gridview-Zeile gelten wird.Javascript Loop mit Sleep
Also in der JavaScript möchte ich Slideshow wie Funktionalität für jedes Dropdown-Listenelement und zählen, wie viele Gridview Zeilen dieses Element enthalten.
Ich versuche, den Code zu bekommen mit konstanter Geschwindigkeit (2 Sekunden pro Dropdownlist Artikel)
Unten ist mein JavaScript
$(document).ready(function() {
loop();
});
function loop() {
var ddl = document.getElementById("cphMain_ddlInc");
for (var j = 1; j < ddl.options.length; j++) {
setTimeout(shippedEmbryos(j), 2000);
}
}
function shippedEmbryos(j) {
var st = $("input[id*=txtShipped]");
var grid = document.getElementById("cphMain_gvFertEntry");
var ddl = document.getElementById("cphMain_ddlInc");
var embryos = 0;
var ddlValue = ddl.options[j].innerHTML;
for (var i = 1; i < grid.rows.length - 1; i++) {
if (ddlValue == grid.rows[i].cells[2].innerHTML) {
var txtbox = $("input[id*=txtShipped]");
var x = txtbox[i].value;
if (x == "") {
x = 0;
}
}
else {
x = 0;
}
embryos += parseInt(x);
}
var label = document.getElementById("cphMain_lblShippedEmbryos");
label.innerHTML = "Embryos Shipped for " + ddlValue + ": " + embryos;
};
Rufen Sie Ihre Funktion in einem '' setTimeout() '' mit '' 2000''ms? – Crowes
so läuft es momentan in der Schleife der Dropdown-Liste und nachdem die Schleife abgeschlossen ist, läuft sie dann für jede Dropdown-Liste einmal durch 'shippedembryos()'. Es läuft also nicht alles in der richtigen Reihenfolge, so dass der Diashow-Teil nie funktioniert. Das Javascript zeigt derzeit nur das letzte Dropdown-Element – MMoore94
Ich ging in den Debug-Modus und es tatsächlich ausgeführt, bevor die Seite sogar lädt ... so zeigt es nur das letzte Ergebnis – MMoore94