当鼠标释放时,组合框意外地自动关闭

本文关键字:意外 释放 鼠标 组合 | 更新日期: 2023-09-27 17:51:15

我偶然发现了一个我无法解释的现象,我对为什么会发生这种现象很感兴趣。我希望有人能告诉我原因,以及如何摆脱这种现象:

我已经为应用程序创建了几个页面,然后创建了一个搜索页面。到目前为止一切顺利。每当我试图点击组合框本身,它正常打开,但一旦我释放鼠标按钮,它又关闭了。除非我将鼠标移出组合框区域,然后释放它。我看到的唯一不同寻常的地方是焦点自动重置到组合框之前的最后一个文本字段。

组合框本身是一个正常的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命令被使用)。

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

Tnx

备注:

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

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

当鼠标释放时,组合框意外地自动关闭

Thomas,

听起来你用来初始化组合框的DevExpress设置可能会导致浏览器出现奇怪的行为。是否可以包含浏览器源中呈现的控件的副本?

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