在ajax刷新后,Telerik下拉列表不显示第一个值

时间:2011-05-13 19:15:40

标签: jquery asp.net-mvc jquery-ui telerik telerik-mvc

我正在实施两个下拉列表,其中“基金”下拉列表由选择“关闭日期”下拉列表(级联)填充。问题是在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 个答案:

答案 0 :(得分: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.select(0); // select first combo item, or use fundDropDown.value('0') in case the first combo item has value set to 0
        });
    }
</script>