6

我偶然发现了一种我自己无法解释的现象,我对它发生的原因很感兴趣。我希望有人能解释一下原因以及如何摆脱这种现象:

我为应用程序创建了几个页面,然后创建了一个搜索页面。到目前为止,一切都很好。每当我尝试单击组合框本身时,它都会正常打开,但是一旦我松开鼠标按钮,它就会再次关闭。除非我将鼠标移到组合框区域之外然后释放它。我看到的唯一不寻常的事情是焦点自动重置到组合框之前的最后一个文本字段。

组合框本身是一个普通的 html 组合框,而文本框本身是用 Html.TextBox("search") 创建的,我还尝试更改命名,以防我忽略了 javascript 中的某些内容但没有更改。

然后我尝试了以下方法:

 @Html.TextBox("search")


  Kategorie  @Html.DevExpress().ComboBox(
                    settings => {
                        settings.Name = "PrductCategory";
                        settings.ControlStyle.CssClass = "select";
                        settings.Width = 300;
                        settings.SelectedIndex = 0;
                        settings.Properties.DropDownStyle = DevExpress.Web.ASPxEditors.DropDownStyle.DropDown;
                        settings.Properties.IncrementalFilteringMode = DevExpress.Web.ASPxEditors.IncrementalFilteringMode.Contains;
                        settings.Properties.TextField = "Name";

                        settings.Properties.DisplayFormatInEditMode = false;
                        settings.Properties.Native = false;
                        settings.Properties.TextFormatString = "{0}";
                        settings.Properties.DisplayFormatString = "{0}";
                        settings.Properties.ValueField = "Id";
                        settings.Properties.ValueType = typeof(int);
                    }
  ).BindList(Categories).GetHtml()

这表现得应该有整个时间(尽管组合框的格式很糟糕。由于我没有找到如何将它格式化为看起来像“普通 html”组合框,我决定尝试原生模式,但更多的是下面的)。当我将本机模式设置为 true 时,同样的现象再次发生(再次为 false 时,它​​表现正常)。在浏览了教程和文档几个小时后,我仍然完全不知所措(特别是因为我没有发现任何 setfocus 命令正在使用)。

所以我的问题是:有没有人知道为什么会发生这种情况以及如何阻止这种现象的发生?

肿瘤坏死因子

评论:

在本机模式下并通过选项卡切换到组合框时,我可以正常浏览列表(使用箭头键),但我仍然无法打开组合框,因为它再次自动关闭并且焦点被重置到文本框( “搜索”)在所有其他情况下(除了 native=false)。

当本机模式设置为 false 并且我单击组合框时,焦点将丢失(并设置为组合框之前的文本字段 [它是文本字段] 不到 1 秒,然后在组合框不关闭时设置为组合框)。

4

1 回答 1

1

托马斯,

听起来您用于初始化 ComboBox 的一些 DevExpress 设置可能会导致浏览器出现奇怪的行为。您能否包含一份来自浏览器源代码的呈现控件外观的副本?

可能值得删除一些可选设置,例如IncrementalFilteringMode查看这是否会导致问题。

于 2013-01-15T16:20:52.163 回答