У меня есть RadComboBox, который я использую для отображения названия отдела и сокращений. Я использую шаблон элемента с LinqDataSource, чтобы каждый элемент отображался как:
DeptAbbr - (DeptName)
Вот код, который я использую для этого, и он отлично работает:
<telerik:RadComboBox ID="rcbDepartments" runat="server" AppendDataBoundItems="True"
OnInit="rcbDepartments_Init" DataTextField="DepartmentAbbr" AutoPostBack="True"
DataSourceID="ldsDepartments" DataValueField="DepartmentID" HighlightTemplatedItems="true"
NoWrap="true" Width="250px">
<ItemTemplate>
<div>
<b>
<%# Eval("DepartmentAbbr")%></b><%# Eval("DepartmentName", " - ({0})") %>
</div>
</ItemTemplate>
</telerik:RadComboBox>
Мой вопрос такой. Я хочу добавить начальный элемент в список, который предназначен для «Все отделы» и является элементом по умолчанию. Я могу сделать это легко, но проблема у меня заключается в том, что, поскольку я не сохраняю запись «Все отделы» в базе данных, шаблон показывает пустое пространство в начале списка элементов, когда вы опускаете поле со списком. , Я пытаюсь выяснить, есть ли способ шаблонирования всех элементов, кроме первого в списке?
Примечание: я также попытался выполнить условие в Eval, например:
<b><%# (Eval("DepartmentAbbr") != null) ? Eval("DepartmentAbbr") : "All Departments" %></b><%# Eval("DepartmentName", " - ({0})") %>
Но он оценивает только те элементы, которые связаны с данными, а не исходный элемент, в который я добавляю данные вручную. Другими словами, если я изменю приведенное выше утверждение на:
<b><%# (Eval("DepartmentAbbr") == null) ? Eval("DepartmentAbbr") : "All Departments" %></b><%# Eval("DepartmentName", " - ({0})") %>
Тогда я просто получаю список с одним пустым элементом вверху, а остальные читают «Все департаменты».
Моя работа по решению этой проблемы заключалась в том, чтобы сделать некоторые интересные вещи с серверной частью LINQ, но это заставило меня избавиться от всех шаблонов и HTML-форматирования.