【问题标题】:Dropdown list in ASP.NET Core 2.2ASP.NET Core 2.2 中的下拉列表
【发布时间】:2019-11-15 17:27:02
【问题描述】:

我有一些包含大约 300,000 + Id 的大文件,我可以在下拉列表中显示 ID,但是打开下拉列表并选择值需要很长时间。

我使用以下代码创建了下拉菜单:

<select asp-for="SelectIDs" asp-items=@Model.pvalues onclick="this.size=1;" onMouseOver="this.size=10;" onMouseOut="this.size=1;" style="padding:10px;position:absolute;">
    <option value="" selected>Select ID..</option>
</select>

我可以知道需要做什么来处理如此庞大的下拉列表吗?

【问题讨论】:

  • 为什么要从 300000 个项目的下拉列表中选择一个 ID?
  • 我们有一组对应于我们在 XML 文件中选择的 ID 的属性,我们需要比较两个文件之间的这些属性(更改前和更改后)
  • 处理如此庞大的下拉列表需要做什么:您不能认真地期望您的用户滚动浏览多达 300,000 个! !!!!!!下拉列表中的条目.....这是一个可用性噩梦。处理此问题的最佳方法是不要这样做!。必须有更好的方法来处理这种情况 - 让用户搜索(增量)或其他方式 - 但不要再浪费时间试图快速加载此下拉列表 - 重新考虑您的基本假设,即包含 300'000 个项目下拉菜单是可行的 - 它不是
  • 您将不得不扩展您的问题,以包含有关产生 300,000 个项目的数据的更多信息。坦率地说,尽管您不能指望任何界面能够处理那么多数据,并且正如其他用户所建议的那样,您将不得不添加方法来最初为用户过滤数据集 - 可能使用多个表单回发、查询字符串或更可能的 ajax请求
  • 谢谢。我将研究它以任何其他可能的方式实现它

标签: c# html asp.net-core


【解决方案1】:

我显然还不能发表评论,否则我会这样做。但我建议如果可能的话,你需要做一些预过滤。

您是否绝对不能要求用户首先做出可以减小此下拉菜单大小的选择?

一些想法(随机,因为我不知道你的数据集是什么):

  • 国家/州
  • 行业
  • 日期范围
  • 手动输入过滤器

【讨论】:

  • 我有两个巨大的 xml 文件,其中有 300,000 + ID 并且用户必须选择一个 ID,以便解决方案将拾取与从两个文件中选择的 ID 相对应的标签(更改前后)并将比较所以 ID 选择是提取所需数据的过滤器
  • 用户是否已经知道他们正在寻找的 ID?会不会是一个 ajax 的自动完成下拉菜单?像这样:devbridge.com/sourcery/components/jquery-autocomplete 浏览器最不喜欢在下拉列表中呈现 300k 项,我想用户也会不喜欢滚动这样的列表。
  • 用户无需滚动下拉菜单。在 ID 的 iist 中,用户可以选择他想要验证与该 ID 对应的数据的任何 ID,因此我无法真正过滤并仅显示一些 ID。
【解决方案2】:

最好的选择是使用带有搜索框的动态下拉菜单,当用户在其中键入一些字符时,项目列表将通过 ajax 更新。

https://select2.org/data-sources/ajax

【讨论】:

    【解决方案3】:

    是否可以分别发布这两个文件的样本?不必包含实际数据,只需包含虚拟值即可理解架构。

    仅供参考,我认为您的声明I have two huge xml files which has 300,000 + ID's and User has to select an ID 一定是错误的。在这种情况下,调查问题的最佳方法是问题不是“选择和 ID”,而是“用户必须选择一个条目,解决方案将使用 ID 来做其他事情”。正如其他人所指出的,期望用户从超过 300K 的列表中进行选择或期望页面加载列表是一个明确的可用性问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多