2013-02-15 4 views

ответ

0

ли вы имеете в виду, как это?

DropDownList1.SelectedIndex = -1; 

Вот как обычно это делается с помощью кода.

ETA: Теперь я вижу, о чем вы говорите. И я боюсь, что не вижу, как это можно сделать с серверной стороны. Все, что вы можете сделать на стороне сервера, - это управление рендерингом. Насколько я могу судить, даже если сделать этот код:

<select id="testSelect" selectedIndex="-1"> 

... она по-прежнему появляется с верхним вариантом появляясь быть выбран.

Похоже, что только при явном настройке его на -1 с javascript после рендеринга он будет отображаться с абсолютно ничем не выбранным. Это появляется, как будто это невозможно сделать декларативно в HTML.

Если вы можете найти способ написания тега в HTML, чтобы он отображался таким образом при загрузке, тогда вы можете настроить рендеринг в кодировке (используя .AddAttribute() или аналогичный), но если это невозможно сделать с помощью декларации, ему понадобится javascript.

(Конечно, вы можете написать фрагмент кода JQuery, чтобы изменить все выпадающие на SelectedIndex = -1, но вы думали об этом!)

+0

Это не работает, всегда оставайтесь в индексе 0 – christiangobo

+0

Что происходит? Чего вы хотите, чтобы этого не случилось, если быть точным? –

+0

Посмотрите на это http://jsfiddle.net/eL8sn/ – christiangobo

0

Если вы связываете его на Page_Load событий его делает запись назад (AutoPostBack='True') .Это просто перепривязывают когда-либо время, индекс изменяется

if (!IsPostBack) 
{ 
    BindDropDownList1();  
} 

(или)

Если выше Dosen решение «Т работы попробуйте добавить пустой элемент, как показано ниже:

this.myDropDownList.Items.Add(new ListItem("Select...", "")); 
+0

Нет, я не хочу добавлять новый ListItem, пожалуйста, посмотрите, как jQuery делает http://jsfiddle.net/eL8sn/ – christiangobo

+0

JQuery - это код на стороне клиента, но вы пытаетесь сделать это из кода, который является серверной. Вы должны сделать это в любом случае или попытаться использовать обычный элемент управления html и использовать для этого ajax. – coder

+0

SelectedIndex - это то же свойство с codebehind или на стороне клиента, когда .NET визуализирует DropDownList, он будет отображаться как обычный элемент управления html. – christiangobo

0

Вы можете сделать это

строка selectStr = "SELECT"; string allStr = "ALL"

ListItem allLI = новый ListItem (allStr, allStr);
ListItem selectLI = новый ListItem (selectStr, selectStr);

DropDownList.Items.Add (selectLI); DropDownList.Items.Add (allLI);

// код для заполнения DropDownList со списком, что ваш запрос возвращает

DropDownList.SelectedValue = selectStr;

+0

Пожалуйста, прочитайте вопрос «не добавляя новый ListItem», спасибо в любом случае – christiangobo

Смежные вопросы