Вопрос

I have the following Telerik RadListBox, with a template.

<tel:RadListBox ID="ToList" runat="server" DataValueField="Key" EmptyMessage="No Items" style="width:300px;">
    <ItemTemplate>
        #<asp:Literal runat="server" Text='<%# Eval("AcctNumber") %>' />
        <div>
            <asp:Literal runat="server" Text='<%# Eval("Amount", "{0:C2}") %>' />
        </div>
    </ItemTemplate>
</tel:RadListBox>

However, I'd like to insert a blank "- Select -" item at the beginning. I tried adding an item like:

ToList.Items.Insert(0, new RadListBoxItem("- Select -", ""));

However, this adds an item using the given template as the user interface; I'd like it ot use my text. Is this possible to do?

Это было полезно?

Решение

Luckily, there is an easy solution. Put an inline conditional statement in the ItemTemplate, as follows:

<ItemTemplate>
<ul>
    <li class="col1"><%# Container.DataItem != null ? DataBinder.Eval(Container.DataItem, "CompanyName") : DataBinder.Eval(Container, "Text") %></li>
    <li class="col2"><%# DataBinder.Eval(Container.DataItem, "City") %></li>
    <li class="col3"><%# DataBinder.Eval(Container.DataItem, "ContactTitle") %></li>
</ul>
</ItemTemplate>
<Items>
   <telerik:RadComboBoxItem Text="Select a country" />
</Items>

http://www.telerik.com/help/aspnet-ajax/combobox-insert-default-item-when-databinding.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top