【问题标题】:Kendo UI ComboBox retains value but not text on return to pageKendo UI ComboBox 在返回页面时保留值但不保留文本
【发布时间】:2013-02-10 05:53:57
【问题描述】:

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

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

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

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

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

谢谢,

【问题讨论】:

    标签: asp.net-mvc kendo-ui


    【解决方案1】:

    查看您的一些代码会有所帮助,但我将把它扔掉。使用 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; }
        ...
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-23
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多