2012-03-13 2 views
3

У меня есть страница поиска и вы хотите добавить в нее некоторые фильтры, моя настройка довольно проста: у меня есть CombobBox для стран и ComboBox для государств.Cascading Combobox со значениями по умолчанию на telerik mvc

Я хочу показать ВСЕ состояния, если не выбрана ни одна страна (на самом деле, первый элемент из стран выпадающего списка является «Все») вот мой код:

@(Html.Telerik().ComboBoxFor(m => m.Country) 
     .Name("cbxCountry") 
     .BindTo(this.Model.CountryList) 
     .SelectedIndex(0).CascadeTo("cbxStates")) 

    @(Html.Telerik().ComboBoxFor(m=>m.State) 
     .Name("cbxStates") 
     .DataBinding(binding => binding.Ajax() 
     .Select("AjaxLoadStates","States"))) 

Обратите внимание, что даже если .SelectedIndex установлен на 1, 3, 1231231, вторая выпадающая ячейка отключена до тех пор, пока я не выберу значение. Есть ли способ сделать эту работу?

ответ

3

Вы можете сделать это с помощью client API в JavaScript:

<script type="text/javascript"> 
    function SelectFirstCountry() { 
     var cbxCountry = $("#cbxCountry").data('tComboBox') 
     var cbxStates = $("#cbxStates").data('tComboBox') 

     cbxCountry.select(1); 
     cbxStates.enable(); 
    } 

    $(document).ready(function() { 
     @{ 
      Html.Telerik().ScriptRegistrar().OnDocumentReady("SelectFirstCountry()"); 
     } 
    }); 
</script> 
+0

Хороший подход, я abbandoned в cascadeTo здесь (до этого я на самом деле изменил код Telerik просто чтобы увидеть, если я мог бы сделать передумывает). Но ваше решение выглядит очень чистым, спасибо: D – Tejo

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