"DropDownList.SelectedIndex = -1" Problem

8

Ich möchte nur eine ASP.NET DropDownList ohne ausgewähltes Element. Das Setzen von SelectedIndex auf -1 ist bisher nicht erfolgreich. Ich verwende Framework 3.5 mit AJAX, d. H. Diese DropDownList befindet sich in einem UpdatePanel. Hier ist was ich mache:

%Vor%

Sobald ich ein Element in DropDown hinzufüge, ändert sich der SelectedIndex auf 0 und kann nicht mehr auf -1 gesetzt werden (ich habe versucht, SelectedIndex nach dem Hinzufügen von Elementen aufzurufen) ... Was mache ich falsch? Ant Hilfe wäre willkommen!

    
Alexander Prokofyev 17.09.2008, 08:46
quelle

7 Antworten

17

Beachten Sie, dass myDropDownList.Items.Add ein neues List-Element-Element am unteren Rand hinzufügen wird, wenn Sie es nach dem Ausführen eines DataSource / DataBind-Aufrufs aufrufen. Verwenden Sie stattdessen die Methode myDropDownList.Items.Insert, zB ...

%Vor%

Fügt das Drop-down-Menü "Bitte wählen" oben hinzu.

Und wie gesagt, es wird immer genau ein Item in einem Drop-Down-Menü ausgewählt (ListBoxes sind anders, glaube ich), und das standardmäßig auf das oberste Item, wenn keines explizit ausgewählt ist.

    
Dominic Pettifer 17.09.2008, 09:14
quelle
5

Es ist möglich, selectedIndex -Eigenschaft von DropDownList mit clientseitigem Skript auf -1 zu setzen (d. h. Auswahl löschen):

%Vor%     
Alexander Prokofyev 14.10.2008 12:49
quelle
4

Ich lese gerade folgendes: Ссылка

Es sagt: Um den Indexwert des ausgewählten Elements abzurufen, lesen Sie den Wert der SelectedIndex-Eigenschaft. Der Index ist nullbasiert. Wenn nichts ausgewählt wurde, ist der Wert der Eigenschaft -1.

Zur gleichen Zeit unter Ссылка sehen wir:

Verwenden Sie die SelectedIndex-Eigenschaft, um programmgesteuert den Index des ausgewählten Elements aus dem DropDownList-Steuerelement anzugeben oder zu bestimmen. Ein Element wird immer im DropDownList-Steuerelement ausgewählt. Sie können die Auswahl nicht gleichzeitig von allen Elementen in der Liste löschen.

Vielleicht ist -1 nur zum Erhalten und nicht zum Setzen des Indexes gültig? Wenn ja, werde ich Ihren "Patch" verwenden.

    
Alex 17.09.2008 09:10
quelle
2

Ich bin mir ziemlich sicher, dass im Drop-down-Menü ein Element ausgewählt sein muss. Ich füge normalerweise ein leeres Listenelement hinzu

this.myDropDownList.Items.Add ("");

Als mein erstes Listenelement und entsprechend fortfahren.

    
bryansh 17.09.2008 08:52
quelle
2

Der selectedIndex kann nur -1 sein, wenn das Steuerelement zuerst initialisiert wird und sich keine Elemente in der Sammlung befinden.

Es ist nicht möglich, ein Element in einer Web-Dropdown-Liste wie in einem WinForm-Objekt auszuwählen.

Ich finde es am besten zu haben: this.myDropDownList.Items.Add (neues ListItem ("Bitte auswählen ...", ""));

Auf diese Weise kann ich dem Benutzer mitteilen, dass er ein Element auswählen muss, und Sie können SelectedIndex == 0 überprüfen, um

zu bestätigen     
Aaron Powell 17.09.2008 09:01
quelle
2
___ answer81379 ___

Beachten Sie, dass myDropDownList.Items.Add ein neues List-Element-Element am unteren Rand hinzufügen wird, wenn Sie es nach dem Ausführen eines DataSource / DataBind-Aufrufs aufrufen. Verwenden Sie stattdessen die Methode myDropDownList.Items.Insert, zB ...

%Vor%

Fügt das Drop-down-Menü "Bitte wählen" oben hinzu.

Und wie gesagt, es wird immer genau ein Item in einem Drop-Down-Menü ausgewählt (ListBoxes sind anders, glaube ich), und das standardmäßig auf das oberste Item, wenn keines explizit ausgewählt ist.

    
___ answer81246 ___

Ich bin mir ziemlich sicher, dass im Drop-down-Menü ein Element ausgewählt sein muss. Ich füge normalerweise ein leeres Listenelement hinzu

this.myDropDownList.Items.Add ("");

Als mein erstes Listenelement und entsprechend fortfahren.

    
___ answer81297 ___

Der selectedIndex kann nur -1 sein, wenn das Steuerelement zuerst initialisiert wird und sich keine Elemente in der Sammlung befinden.

Es ist nicht möglich, ein Element in einer Web-Dropdown-Liste wie in einem WinForm-Objekt auszuwählen.

Ich finde es am besten zu haben: this.myDropDownList.Items.Add (neues ListItem ("Bitte auswählen ...", ""));

Auf diese Weise kann ich dem Benutzer mitteilen, dass er ein Element auswählen muss, und Sie können SelectedIndex == 0 überprüfen, um

zu bestätigen     
___ antwort13221668 ___
  1. Erstellen Sie Ihre DropDown-Liste und geben Sie ein initiales ListItem
  2. an
  3. Setzen Sie AppendDataBoundItems auf true , damit neue Elemente angehängt werden.
%Vor%
    
___ answer11666108 ___

Bitte versuchen Sie die folgende Syntax:

%Vor%

oder

%Vor%

oder

%Vor%

Für weitere Informationen: Ссылка

    
___ tag123aspnet ___ ASP.NET ist ein Framework für die Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___ tag123webforms ___ Web Forms ist ein Teil des ASP.NET-Webframeworks. Es ist eines der Programmiermodelle, mit denen Sie Webanwendungen erstellen können. Web Forms sind Seiten, die Benutzer über ihre Browser anfordern und die die Benutzeroberfläche bilden, die Webanwendungen ihr Aussehen und Verhalten verleiht. ___ tag123dropdownmenu ___ Ein GUI-Element für die Benutzeroberfläche, ähnlich einem Listenfeld, in dem der Benutzer einen Wert aus einer Liste auswählen kann. Wenn eine Dropdown-Liste inaktiv ist, wird ein einzelner Wert angezeigt. Wenn es aktiviert ist, zeigt es eine Liste von Werten an, aus der der Benutzer einen auswählen kann. ___ qstnhdr ___ "DropDownList.SelectedIndex = -1" Problem ___ answer201012 ___

Es ist möglich, selectedIndex -Eigenschaft von DropDownList mit clientseitigem Skript auf -1 zu setzen (d. h. Auswahl löschen):

%Vor%     
___ answer81351 ___

Ich lese gerade folgendes: Ссылка

Es sagt: Um den Indexwert des ausgewählten Elements abzurufen, lesen Sie den Wert der SelectedIndex-Eigenschaft. Der Index ist nullbasiert. Wenn nichts ausgewählt wurde, ist der Wert der Eigenschaft -1.

Zur gleichen Zeit unter Ссылка sehen wir:

Verwenden Sie die SelectedIndex-Eigenschaft, um programmgesteuert den Index des ausgewählten Elements aus dem DropDownList-Steuerelement anzugeben oder zu bestimmen. Ein Element wird immer im DropDownList-Steuerelement ausgewählt. Sie können die Auswahl nicht gleichzeitig von allen Elementen in der Liste löschen.

Vielleicht ist -1 nur zum Erhalten und nicht zum Setzen des Indexes gültig? Wenn ja, werde ich Ihren "Patch" verwenden.

    
___ qstntxt ___

Ich möchte nur eine ASP.NET DropDownList ohne ausgewähltes Element. Das Setzen von SelectedIndex auf -1 ist bisher nicht erfolgreich. Ich verwende Framework 3.5 mit AJAX, d. H. Diese DropDownList befindet sich in einem UpdatePanel. Hier ist was ich mache:

%Vor%

Sobald ich ein Element in DropDown hinzufüge, ändert sich der SelectedIndex auf 0 und kann nicht mehr auf -1 gesetzt werden (ich habe versucht, SelectedIndex nach dem Hinzufügen von Elementen aufzurufen) ... Was mache ich falsch? Ant Hilfe wäre willkommen!

    
___
Lemaire Stewart 04.11.2012 18:46
quelle
0

Bitte versuchen Sie die folgende Syntax:

%Vor%

oder

%Vor%

oder

%Vor%

Für weitere Informationen: Ссылка

    
Vimal Patel 26.07.2012 09:17
quelle