我在此特定项目中使用 C# 和 ASP.NET 以及 .NET Framework 库 2.0 版。我们还使用 AjaxControlToolkit。AjaxControlToolkit 应该具有可用的控件,可以为我面临的问题提供下降的用户界面解决方案。

去年我在几个项目中遇到过这个问题,并在过去使用了不同的解决方案。我刚刚选择的项目的当前设计是有一个 <asp:DropDownList> 控件,并且在页面加载时进行数据库调用以获取值列表。然后使用 DropDownList 的数据源进行绑定。问题是从数据库返回了 25k 个项目。首先,用户必须滚动浏览数以万计的项目,这是不可接受的。但更重要的是,在测试的每个浏览器(IE 7、FF 3、Safari 和 Chrome)中,浏览器在传播下拉列表项时完全挂起。

我在想的是使用 模态弹出窗口 形式,其中一个 自动完成扩展器 这允许用户深入到特定的公司。因此,在他们必须选择公司的字段中,他们单击“选择公司”图标,模式表单出现,让他们使用自动完成扩展程序来选择现有公司。他们单击“确定”并将值保存到字段中。

然而,我是一个老派的命令行/shell/终端人,我对可接受的 UI 设计的想法可能有偏差(在任何系统上给我一个命令提示符,我就可以开始了)。我想听听社区中的人们的建议,看看他们认为什么是可以接受的解决方案,或者他们是否遇到过类似的其他问题。

有帮助吗?

解决方案

我认为您对自动完成扩展程序的想法是最佳解决方案。我也遇到过这个问题(听起来很相似 - 你从其他人手中接过的一个项目)。推回通常来自用户方。他们习惯于能够从项目列表中进行选择。不幸的是,随着数据库的增长,这变得越来越不可行。

但是当你在页面上下载了0.5MB的html(不包括viewstate)时,必须做出妥协。

为什么你认为你需要创建模态弹出窗口?你不能在数据输入页面上放置扩展器吗?

其他提示

我不得不处理同样的问题。但我最终使用了一个带有分页支持和自动完成功能的组合框。目前这个组合框恰好来自Telerik。它是一个用于自动完成的组合框,因为您无法输入下拉列表。

我同意没有用户会想通过25,000个项目找到他们想要的那个。有没有什么方法可以限制数据,以便他们向下钻取?比如首先选择一个地区或类型的公司,然后显示匹配的公司?

  • 多个级联列表框,每个列表框进一步细化前一个的结果集
  • 阿贾克斯 自动完成扩展器
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top