2009-05-20 5 views
3

Я использую последний элемент управления Radjobobox Ajax 2009 года, и я использую встроенные функции для заполнения его из веб-службы.Добавить элементы в Telerik Ajax RadComboBox после заполнения из webservice

Я также хотел бы нажать еще один предмет в коробку, чтобы у пользователя был выбор не выбирать ничего. По существу, сделать контроль опциональным. Прямо сейчас, если они что-то выберут, а затем передумают, они не могут изменить его ни к чему.

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

<telerik:RadComboBox ID="combo" runat="server" 
        Skin="Office2007" 
        AllowCustomText="false" 
        EnableLoadOnDemand="true" 
        AppendDataBoundItems="true" 
        Text="" 
        Width="300" Height="200"> 
        <ExpandAnimation Type="None" /> 
        <CollapseAnimation Type="None" /> 
        <WebServiceSettings Path="~/Service.asmx" Method="GetStuff" /> 

       </telerik:RadComboBox> 

Благодаря

+0

Как вы наполнитьсетевую поле со списком? Использовать привязку данных или вручную заполнить ее? –

ответ

5

Это что-то вроде этого вы имели в виду? Добавьте дополнительный элемент после загрузки данных.

<script type="text/javascript"> 
    //<![CDATA[ 
    function OnClientItemsRequested(sender, eventArgs) { 
     var combo = $find("<%= RadComboBox1.ClientID %>"); 
     var intextput = "<All Items>"; 
     var comboItem = new Telerik.Web.UI.RadComboBoxItem(); 
     comboItem.set_text(intextput); 
     comboItem.set_value("-1"); 
     combo.trackChanges(); 

     combo.get_items().add(comboItem); 
     comboItem.select(); 
     combo.commitChanges(); 
     comboItem.scrollIntoView(); 
    } 
    //]]> 
    </script> 



<telerik:RadComboBox runat="server" ID="RadComboBox1" 
     EnableLoadOnDemand="true" 
     OnClientItemsRequesting="OnClientItemsRequesting" 
     OnClientItemsRequested="OnClientItemsRequested"> 
     <WebServiceSettings Method="GetMyData" Path="http://localhost:1606/Service1.asmx" /> 
    </telerik:RadComboBox> 
+0

@Neil, это должно быть возможно, подключившись к событию OnClientItemsRequesting и добавив элемент в этот обработчик. –

3

В дополнение к ответу Магнуса, чтобы добавить товар в верхней части вы бы

combo.get_items().insert(0, comboItem); 

стороне клиента документация здесь:

http://www.telerik.com/help/aspnet-ajax/combo_clientsideradcomboboxitemcollection.html

+1

сейчас он находится здесь: http://www.telerik.com/help/aspnet-ajax/combobox-client-side-radcomboboxitemcollection.html кажется, что некоторые URL-адреса изменились – rdmptn