Kendo UI ComboBox在返回页面时保留值但不保留文本

时间:2013-02-10 05:53:58

标签: asp.net-mvc kendo-ui

我正在使用Kendo UI进行MVC,当我执行以下操作时,我遇到了ComboBox的奇怪行为:

  1. 在ComboBox中选择一个项目。
  2. 离开页面。
  3. 使用浏览器的“后退”按钮返回页面。
  4. 返回时,ComboBox为空(如果我配置了占位符,则会显示占位符)。但是,当我打开ComboBox时,我最初选择的项目会突出显示。因此,虽然文本不是,但似乎保留了该值。

    通常情况下,数据输入项目会保留您离开页面时的值,因此这种行为似乎不合标准。

    有没有办法确保ComboBox在返回页面时保留其文本?

    谢谢,

2 个答案:

答案 0 :(得分:0)

看到你的一些代码会有所帮助,但我会抛弃它。这有点没有文档使用Kendo()。DropDownListFor但我发现它是最好的。我还发现,最好继续将列表选项从您的数据看起来转换为IList of SelectListItem,以后会节省很多麻烦。这是在一堆视图中被删除的部分内容。

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "ChangeProject" }))
{   
    @(Html.Kendo().DropDownListFor(x => x.CurrentProjectId)
        .HtmlAttributes(new { style = "width: 450px;" })
        .OptionLabel("Project...")
        .BindTo(Model.ProjectSelectList)
        .Events(events => events.Change("submitProjectForm"))
    )
    <script type="text/javascript">
        function submitProjectForm() {
            $('#ChangeProject').submit();
        }
    </script>
}

模型应用于页面...

public class ThisViewModel
{
    public int CurrentProjectId { get; set; }
    public IList<SelectListItem> ProjectSelectList { get; set; }
    ...
}

答案 1 :(得分:0)

您可以在sumit之前设置commboBox的控制等值文本的值或转到新页面:

$("#controlid").val($("#controlid").data("kendoComboBox").text());