asp.net - 允许用户搜索网页上的大型列表的最佳方式是什么?

标签 asp.net html web-applications user-interface

我正在编写一个 ASP.NET MVC 应用程序,并且我有一个表单,用户可以在其中输入他们用来解决问题的一个或多个部件号。大多数时候,他们知道零件号并可以直接输入。但是,偶尔他们需要一些额外的帮助。

零件号表中有超过 50,000 个项目,对于下拉列表来说太大了。此外,选择需要一些时间,所以我不知道自动完成在这里也很棒。

关于我可以做些什么来使这个用户友好,还有哪些其他建议?

最佳答案

我会在部件号上使用自动完成框 + 添加服务器端缓存(这样你就不需要每次都从 Db 中获取它们,仅当记录更新时)。这样它应该工作得非常快。

Caching in ASP.NET with the SqlCacheDependency Class

使用这段 jQuery 代码,您可以过滤用户输入到“自动完成”框中的字母:

$(function() {
    $.isShiftDown = false;
    $('input#partName').keydown(function(e) {
        if (e.keyCode == 16) $.isShiftDown = true;
        if ($(this).val().length == 0 && (e.keyCode == 188 ||
            e.keyCode == 189)) return false;
        return ($.inArray(e.keyCode, [8, 13, 35, 36, 37, 39, 46, 48, 49, 50,
            51, 52, 53, 54, 55, 56, 57, 188, 189]) > -1 && !$.isShiftDown)
            || (e.keyCode > 64 && e.keyCode < 91);
    }).keyup(function(e) { if (e.keyCode == 16) $.isShiftDown = false; });
});

(将这些数字替换为您的数字,这些数字对应于允许的字符。例如 e.keyCode == 16 是 SHIFT 键,64 - 91 代码是从 A 到 Z 的字母)

关于asp.net - 允许用户搜索网页上的大型列表的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722704/

相关文章:

html - HTML 和 CSS 中的响应式图像

c# - 你如何在 CaSTLe MVC (Monorail) 中获取用户的 IP 地址?

c# - Microsoft Visual Studio 2013 : Cannot Create a new Asp. 网络项目

c# - 在 asp.net mvc 中显示基于身份验证状态的 View

javascript - 一个div中有图标和标签,我想在单击标签时更改图标

html - 在@media 中隐藏包含带有 css 的 URL 的 div

javascript - 网页动画背后的技术是什么?

web-applications - SSO 网络应用程序 : home-made or factory-made solution?

Delphi ISAPI 性能与 native 服务器

c# - MVC 模型不绑定(bind)到字典