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