Как установить выбранный пункт DropDownList в разметке?

У меня есть DropDownList в шаблонном столбце управления GridView. GridView связывается со списком объектов. Каждый объект имеет свойство интервала типа, который соответствует значению в одном из DropDownLists ListItems. Я мог установить выбранный пункт программно путем добавления события DataBind к выпадающему, но я задаюсь вопросом, существует ли способ установить выбранный пункт при помощи блока кода в aspx разметке.

5
задан Jeremy 17 February 2010 в 19:39
поделиться

3 ответа

Будьте осторожны в этом дизайне. Создание раскрывающихся списков сетки таким образом означает, что для каждой опции в раскрывающемся списке вы будете повторять для каждой отдельной строки. Это может очень быстро добавить к размерам страниц, превышающим МБ, если у вас более нескольких строк или нескольких раскрывающихся столбцов, что снизит производительность.

При этом вы можете сделать это в разметке, используя теги сценария привязки контекста:

<asp:DropDown id="dropDown1" SelectedValue='<%# Eval("Key") %>' runat="server"/>

Теги привязки контекста также позволяют вызывать общедоступные / защищенные функции на странице / пользовательском элементе управления как:

<asp:DropDown id="dropDown1" SelectedValue='<%# myFunction((int) Eval("Key")) %>' runat="server"/>

public string myFunction(int key){
  return key.ToString();
}

Как В качестве альтернативы созданию одного и того же повторяющегося HTML для каждой строки вы можете сделать эти раскрывающиеся списки автозаполнением или создать скрытый раскрывающийся список, который отображает HTML только один раз, а затем использует JQuery или JavaScript для заполнения всех выпадающих списков на стороне клиента.

10
ответ дан 13 December 2019 в 22:06
поделиться

Вы можете установить его в разметке с помощью:

<ItemTemplate>
<asp:DropDown .. SelectedValue='<%# Eval("Key") %>' />
</ItemTemplate>

В зависимости от того, как вы его привязываете, используете ли вы элемент управления источником данных? В любом случае, я заметил, что этот подход может попытаться установить значение до того, как элементы будут привязаны, и это может вызвать исключение. Не уверен, если бы такое случилось однажды, подумал, что может быть так, но мне следовало бы изучить это более подробно.

HTH.

0
ответ дан 13 December 2019 в 22:06
поделиться

вы также можете использовать событие RowDataBound для GridView или выбрать в разметке, как описано @Brian

0
ответ дан 13 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

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