我的问题是我需要在Telerik MVC网格控件中设置嵌套DropDownList的选定值。由于网格绑定在客户端上,我需要在客户端的“onDrpLoad”事件中设置下拉列表的选定项。
为下面的下拉列表设置所选索引的正确方法是什么?同样重要的是,当设置下拉列表中的所选项目时,不会导致“onDrpChange”事件触发。 “onDrpChange”事件还需要访问(发送到服务器)事件触发时选择的助手的AssistantId。
有一个干净简单的方法吗?
Html.Telerik().Grid<Person>().Name("Grid")
.DataBinding(dataBinding => dataBinding.Ajax).Select("GetDetails", "Person"))
.Columns(columns => columns.Bound(p => p.AssistantId).ClientTempalate(
Html.Telerik().DropDownList().Name("AssistantList_<#= PersonId #>").BindTo(new
SelectList(AssistantController.GetAssistants))).ClientEvents(events => events.OnLoad("onDrpLoad"); events.OnChange("onDrpChange");
).ToHtmlString());
感谢。
答案 0 :(得分:0)
我是这样做的。 (过去已经使用过这种方法,它有效)
不要在DropDown声明中创建SelectList,而是将其设为模型的属性。
public class YourPageViewModel
{
public YourPageViewModel()
{
this.YourSelectList = <fill the list>;
this.SelectedItemIndex = <index of the item you want to be selected in the list>;
}
public SelectList YourSelectList { get; set; }
public int SelectedItemIndex { get; set; }
}
在您的视图顶部,您有:
@model YourPageViewModel
然后你的DropDown声明:
Html.Telerik().DropDownList().Name("AssistantList_<#= PersonId #>")
.BindTo(Model.YourSelectList).SelectedIndex(Model.SelectedItemIndex)
.ClientEvents(events =>
{
events.OnLoad("onDrpLoad");
events.OnChange("onDrpChange");
})
.ToHtmlString()