【问题标题】:Set selected index on Dropdownlist in Telerik MVC Grid在 Telerik MVC 网格中的下拉列表上设置选定的索引
【发布时间】:2012-03-26 17:30:05
【问题描述】:

我的问题是我需要在 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());

谢谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 telerik telerik-grid


    【解决方案1】:

    我会这样做。 (过去已经用过这种方法,效果很好)

    与其在 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()
    

    【讨论】:

    • 我决定使用新的外文栏目功能来解决这个问题。唯一的缺点是我必须为“编辑”命令按钮添加一个新列。
    • 感谢您的反馈因为我的 Grid 绑定在客户端(即使用 Ajax 绑定)并从选择命令(“GetDetails”)获取项目数据,因此无需在我的模型上公开此列表.我的问题是,在服务器上构建视图模型对象时,您不知道要在行中显示哪个项目,这反过来意味着如果您有服务器端绑定的下拉列表,您只能在client.FYI-我使用 Telerik Grid 控件上的 ForeignKey 列功能来解决此问题。缺点是我现在需要一个“命令按钮列”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多