В раскрывающемся списке Telerik не отображается первое значение после обновления ajax - PullRequest
0 голосов
/ 13 мая 2011

Я реализую два выпадающих списка, в которых выпадающий список «Фонд» заполняется выбором выпадающего списка «Дата закрытия» (каскадный). Проблема в том, что после обновления Ajax в раскрывающемся списке «Фонд» вместо первого выбора отображается пустое значение. Я проверил, что у возвращенных выборов первый элемент помечен как «выбранный». Я также попробовал несколько вещей, чтобы по умолчанию выбранный индекс выпадающего после обновления. Итак, как мне получить раскрывающийся список по умолчанию для определенного выбора после его обновления. Ниже перечислены фрагменты кода для определения раскрывающихся списков и функции javascript, которая запускается при выборе «Закрыть дату».

с использованием Telerik 2011.1.315 и JQuery 1.5.1

<script type="text/javascript">
    fundListUrl = '<%= Url.Action("GetFundList","Admin") %>'
    function GetFundList(e)
    {
        var fundDropDown = $('#FundId');
        var fundDropDownData = fundDropDown.data('tDropDownList');
        fundDropDownData.loader.showBusy();
        $.get(fundListUrl, { dateId: e.value }, function (data) {
            fundDropDownData.dataBind(data);
            fundDropDownData.loader.hideBusy();
            fundDropDown.attr('selectedIndex', 0); // Not Working
        });
    }
</script>

...

<table>
    <tr>
    <td class="editlabel">Close Date:</td>
    <td>
        <%= Html.Telerik().DropDownListFor(o => o.ReportingPeriodDateId)
            .BindTo((SelectList)ViewData["closeDateList"])
            .ClientEvents(events => events.OnChange("GetFundList"))
        %>
    </td>
    </tr>
    <tr>
    <td class="editlabel">Fund:</td>
    <td>
        <%= Html.Telerik().DropDownListFor(o=>o.FundId)
            .BindTo((SelectList)ViewData["fundList"])
            .HtmlAttributes(new { style = "width: 40em;" })
        %>
    </td>
    </tr>
</table>

1 Ответ

1 голос
/ 19 мая 2011

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

<script type="text/javascript">
    fundListUrl = '<%= Url.Action("GetFundList","Admin") %>'
    function GetFundList(e)
    {
        var fundDropDown = $('#FundId');
        var fundDropDownData = fundDropDown.data('tDropDownList');
        fundDropDownData.loader.showBusy();
        $.get(fundListUrl, { dateId: e.value }, function (data) {
            fundDropDownData.dataBind(data);
            fundDropDownData.loader.hideBusy();
            fundDropDown.select(0); // select first combo item, or use fundDropDown.value('0') in case the first combo item has value set to 0
        });
    }
</script>
...