Legen Sie die scroll-position der listbox
Ich habe ein multiple select-listbox. Dieses Listenfeld enthält die Namen vieler Personen. Um die 1000+. So wie Sie sehen können, es wäre sehr ärgerlich, um einen Bildlauf durch. Was ich will zu tun ist, um Anzeige A-Z auf der Seite vertikal. Wenn der Benutzer klickt auf einen Brief, javascript ausgelöst wird, um die scroll-position (NICHT wählen Sie die Artikel, die erste vorkommende Zeichen ausgewählt. Dies ist ein Steuerelement, das erstellt wird, in c# und javascript gerendert wird, werden mithilfe der client-Skript-manager. Im Grunde, was ich bisher getan habe ist, fügen Sie eine neue htmlanchor aus einem char-array von A-Z. Diese Listen, das alphabet vertikal auf. Das wäre sehr ähnlich zu einem iTouch/iPhone Musik-Bibliothek, Tippen/klicken Sie auf den Brief und die schriftrolle wird auf das erste vorkommen. Ich weiß wie eine Schleife durch die Liste. Bisher habe ich ein onclick-Funktion, die Handlungen als solche:
private HtmlGenericControl alphaSortContainer;
this.alphaSortContainer = new HtmlGenericControl("div");
char[] alphabet = { 'Z'.......'A' };
for (int i = 0; i < 26; i++)
{
var letter = new HtmlAnchor();
link.InnerText = alphabet[i].ToString();
link.Attributes.Add("onclick", "javascript:jumpToIndex('" + link.InnerText + "');");
alphaSortContainer.Controls.Add(letter);
}
Der obige code fügt (oder sollte) Briefe gestapelt auf der jeweils anderen. Ihre onclick ausgelöst wird, wird die javascript-Funktion und senden Sie in den Brief.
Mein javascript so weit:
function jumpToIndex(var index) {
var list = document.getElementByID('" + this.list.ClientID + "');
for(var i=0; i < list.length; i++) {
if(list.options[i].value.charAt(0) == index) {
HOW TO SET THE SCROLL POSITION TO MAKE THAT OBJECT THE TOP OF THE LIST BOX
break; //pretty sure this is how i would break out of both loops.
}
}
}
Brauche ich nur einen Bildlauf zu dem Element an, das entspricht der if-Anweisung. Ich bin mir auch ziemlich sicher, dass wäre, wie ich ausbrechen der beiden Schleifen. Bitte um Hilfe!!
InformationsquelleAutor Tom | 2011-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige Weg, dies zu tun ist, wählen Sie eine der Optionen in der select-Liste, die Sie vornehmen können auf folgende Weise:
Natürlich, wenn Sie nicht wollen, diese Entscheidung zu treffen serverside, wenn Sie die Liste erstellen oder wenn Sie die Liste erstellen), können Sie immer tun Sie es mit javascript so:
und denken Sie daran, dass
<insert number>
ist zerobasedNun, bevor Sie sagen, ich don ' T wollen, um es auszuwählen, Blättern Sie zu erinnern, dass, wenn Sie sehen, eine option in einer listbox, ist es bereits standardmäßig ausgewählt.
Es sei denn, Sie arbeiten mit einer multi-select-selectbox in dem Fall ist das eine ganz andere Ballspiel, und du bist Scheiße aus Glück 😉
boah... ja, das klingt wie eine unglaublich schlechte Idee ist, zu bauen, egal wie Sie es betrachten, gehen Sie zurück zu Ihrem AUFTRAGGEBER und Ihnen sagen, gerade heraus, dass Sie benötigen, um ein Umdenken in der Gestaltung - es klingt wie ein Benutzer schlimmster Alptraum
InformationsquelleAutor Martin Jespersen
Haben Sie berücksichtigt nicht die Anzeige der gesamten Liste, aber mit javascript-arrays für jeden Buchstaben. Wenn ein Buchstabe ausgewählt wird, wird die Liste gefüllt ist nur mit diesem Brief, der Gegenstände?
InformationsquelleAutor derekcohen