代码之家  ›  专栏  ›  技术社区  ›  stephenbayer

用于大数据列表而不是DropDownList的可选UI控件

  •  3
  • stephenbayer  · 技术社区  · 16 年前

    在这个特定的项目中,我正在使用带有.NET框架库2.0版的C和ASP.NET。我们也在使用AjaxControlToolkit。AjaxControlToolkit应该有可用的控件,以便为我所面临的问题提供一个下降用户界面解决方案。

    我在去年的一些项目中遇到过这种情况,并且在过去使用了不同的解决方案。我刚学过的项目的当前设计是有一个<asp:DropDownList>控件,在页面加载时调用数据库以获取值列表。然后使用DropDownList的数据源绑定它。问题是从数据库返回了25K个项目。首先,对于用户来说,滚动浏览成千上万个项目是不可接受的。但是,更重要的是,在测试它的每一个浏览器(如7、FF 3、Safari和Chrome)中,浏览器在传播DropDownlist项时完全挂起。

    我想用一个 Modal Popup 形式,哪一个 Autocomplete Extender 这允许用户向下钻取到特定公司。因此,在必须选择公司的字段中,他们单击“选择公司”图标,就会出现模式窗体,让他们使用自动完成扩展程序来选择现有公司。他们单击“确定”,然后将值保存到字段中。

    但是,我是一个老派的命令行/shell/terminal人,我对可接受的UI设计的想法可能会有偏差(在任何系统上给我一个命令提示,我很乐意去)。我想听听社区里的人的建议,他们认为什么是一个可以接受的解决方案,或者如果他们遇到过类似的其他问题。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Keltex    16 年前

    我认为你对自动完成扩展器的想法是最好的解决方案。我也遇到过这个问题(听起来很相似——一个你从别人那里接管的项目)。推回通常来自用户端。它们用于从项目列表中进行选择。不幸的是,随着数据库的增长,这变得越来越不可行。

    但是,当您在页面上下载了0.5MB的HTML(不包括viewstate)时,必须做出让步。

    为什么您认为需要创建模式弹出窗口?您不能在数据输入页上只安装扩展器吗?

        2
  •  0
  •   Aaron Fischer    16 年前

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

        3
  •  0
  •   community wiki Slapout    16 年前

    我同意没有一个用户会想要浏览25000件物品来找到他们想要的。您是否可以通过某种方式限制数据,使其向下钻取?比如首先选择一个地区或公司类型,然后显示匹配的地区或公司类型?

        4
  •  0
  •   tsilb    16 年前