“DropDownList. SelectedIndex =-1” проблема

Я просто хочу ASP.NET DropDownList без выбранного пункта. Установка SelectedIndex к-1 не имеет пользы, до сих пор. Я использую Платформу 3.5 с Ajax, т.е. этот DropDownList в UpdatePanel. Вот то, что я делаю:

    protected void Page_Load (object sender, EventArgs e)
    {
        this.myDropDownList.SelectedIndex = -1;
        this.myDropDownList.ClearSelection();

        this.myDropDownList.Items.Add("Item1");
        this.myDropDownList.Items.Add("Item2");
    }

Момент я добавляю элемент в DropDown, его изменениях SelectedIndex в 0 и больше не могу быть установлен на-1 (я пытался назвать SelectedIndex после добавляющих объектов также)... Что я делаю неправильно? Справка муравья ценилась бы!

8
задан Alexander Prokofyev 14 October 2008 в 12:52
поделиться

5 ответов

Пустой в памяти myDropDownList. Объекты. Добавьте добавит новый элемент Listitem внизу при вызове его после выполнения вызова Источника данных/Привязки данных, так используйте myDropDownList. Объекты. Вставьте метод вместо этого, например...

myDropDownList.DataSource = DataAccess.GetDropDownItems(); // Psuedo Code
myDropDownList.DataTextField = "Value";
myDropDownList.DataValueField = "Id";
myDropDownList.DataBind();

myDropDownList.Items.Insert(0, new ListItem("Please select", ""));

Добавит, 'Выберите' выпадающий объект к вершине.

И, как упомянуто всегда будет точно один Объект, выбранный в выпадающем (ListBoxes отличаются, я верю), и это принимает значение по умолчанию к лучшему, если ни один явно не выбран.

18
ответ дан 5 December 2019 в 05:13
поделиться

Я читаю следующее: http://msdn.microsoft.com/en-us/library/a5kfekd2.aspx

Это говорит: Для получения индексного значения выбранного пункта считайте значение свойства SelectedIndex. Индекс основан на нуле. Если ничто не было выбрано, значение свойства-1.

В то же время по http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex (По сравнению с 80) .aspx мы видим:

Используйте свойство SelectedIndex, чтобы программно указать или определить индекс выбранного пункта от управления DropDownList. Объект всегда выбирается в управлении DropDownList. Вы не можете очистить выбор от каждого объекта в списке одновременно.

Возможно-1 допустимо только для получения а не для установки индекса? Если так, я буду использовать Ваш 'патч'.

4
ответ дан 5 December 2019 в 05:13
поделиться

Возможно установить selectedIndex свойство DropDownList к-1 (т.е. четкий выбор) использование клиентского сценария:

<form id="form1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Value="A"></asp:ListItem>
        <asp:ListItem Value="B"></asp:ListItem>
        <asp:ListItem Value="C"></asp:ListItem>
    </asp:DropDownList>
    <button id="СlearButton">Clear</button>
</form>

<script src="jquery-1.2.6.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function()
    {
        $("#СlearButton").click(function()
        {
            $("#DropDownList1").attr("selectedIndex", -1); // pay attention to property casing
        })

        $("#ClearButton").click();
    })
</script>
5
ответ дан 5 December 2019 в 05:13
поделиться

Я вполне уверен, что выпадающий должен иметь некоторый выбранный объект; я обычно добавляю пустой элемент списка

this.myDropDownList. Объекты. Добавьте ("");

Как мой первый элемент списка, и продолжаются соответственно.

2
ответ дан 5 December 2019 в 05:13
поделиться

selectedIndex может только быть-1, когда управление является первым initalised и в наборе нет никаких объектов.

Не возможно не иметь никакого объекта, выбранного в веб-выпадающем списке, как Вы были бы на WinForm.

Я нахожу, лучше иметь: this.myDropDownList. Объекты. Добавьте (новый ListItem ("Выберите...", ""));

Таким образом, я передаю пользователю, что они должны выбрать объект, и можно проверить SelectedIndex == 0 для проверки

2
ответ дан 5 December 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: