0

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

  1. 在组合框中选择一个项目。
  2. 离开页面。
  3. 使用浏览器的后退按钮返回页面。

返回后,ComboBox 为空白(或者如果我配置了占位符,则会出现)。但是,当我打开 ComboBox 时,我最初选择的项目会突出显示。因此,尽管文本没有保留,但似乎保留了该值。

通常,数据输入项会保留它们在您离开页面时的值,因此这种行为似乎是不标准的。

有什么方法可以确保 ComboBox 在返回页面时保留其文本?

谢谢,

4

2 回答 2

0

看到你的一些代码会有所帮助,但我会把它扔掉。使用 Kendo().DropDownListFor 有点无证,但我发现它是最好的。我还发现最好继续将列表选项从您的数据看起来像 IList 的 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; }
    ...
}
于 2013-02-11T19:57:53.493 回答
0

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

$("#controlid").val($("#controlid").data("kendoComboBox").text());
于 2015-12-04T03:17:28.603 回答