在使用组合框时,我们收到了用户的主要投诉。他们使用过滤器,看到第一个项目突出显示,然后单击tab,项目不在选中。他们做大量的数据输入,不想使用鼠标或使用向下箭头来选择它。他们习惯了常规的HTML选择控件的工作方式。有什么Javascript的解决方法吗?如果没有,我可能不得不回到使用标准选择框。我使用组合框而不是下拉框的原因是因为你的下拉框不支持从框中选择,这是一个交易破坏者。
我看到一篇文章使用PopupClass的组合框,但这不是一个受支持的属性。
谢谢!
你好,詹姆斯,
关于期望的功能,我们已经有了一个公共项目:当下拉菜单打开时,在失去焦点时自动选择第一项。这是目前缺少的有效功能。
也就是说,我把这个项目标记为上面链接中的“副本”。
与此同时,这里有一个没有PopupClass的解决方案(对于较新的版本),你可以使用:
将此脚本移动到项目中的适当位置,抑制错误的方法是将其保留在组件中,以便于复制粘贴*@<脚本suppress-error=“BL9992”>函数getComboHighligtedItem(){//获取当前特定组合框中的焦点项varselItemElem =文档.querySelector (".special-combobox .k-focus”);如果(selItemElem) {返回selItemElem.innerText;}}脚本>选择值:@selectedValue<br/><TelerikComboBox元素失去焦点时=“@Test”数据=“@myComboData”文本框=“MyTextField”ValueField=“MyValueField”@bind-Value=“@selectedValue”占位符=“选择一个项目……”ClearButton=“真正的”滤过性的=“真正的”FilterOperator=“@StringFilterOperator。包含“><ComboBoxSettings><ComboBoxPopupSettings类=“special-combobox”/>ComboBoxSettings>TelerikComboBox><输入占位符=“其他表单元素”/>@code {async任务测试(){字符串currInput =等待_js。InvokeAsync<字符串>(“getComboHighligtedItem”);Console.WriteLine ("--------------");Console.WriteLine (currInput);Console.WriteLine ("--------------");//注意-这依赖于组合呈现文本的项模板,或者根本不使用//如果使用其他项模板,您可能需要深入研究DOM或以其他方式识别项if (!string.IsNullOrEmpty(currInput)){//将过滤操作匹配到组合框的过滤操作符-在这个示例中包含var matchingItem = myComboData。Where(itm => itm. mytextfield . tolowerinvariant ().Contains(currInput.ToLowerInvariant())).FirstOrDefault();if (matchingItem != null) {selectedValue = matchingItem. myvaluefield;}}} //只是IEnumerable后面的虚拟数据<MyDdlModel>myComboData = Enumerable。范围(20)。Select(x => new MyDdlModel {MyTextField = "item " + x, MyValueField = x});int selectedValue {get;设置;}公共类MyDdlModel{公共int MyValueField {get;设置;}公共字符串MyTextField {get;设置;}}
让我知道,如果我错过了什么,或者如果你发现上述代码的困难。
问候,Hristian诺夫进步Telerik
manbets登录虚拟教室,免费的自定进度的技术培训,让你跟上速度与Telerik和剑道UI产品迅速得到了一个全新的面貌+新的和改进的内容,包括一个全新的Blazor课程!点击这里查看https://learn.telerik.com/。
PopupClass