ListBox项较多时,如何提高选择效率?

zhangj19224 2015-07-28 05:33:43
在修改人员的数据时,其中有一项是人员所属的公司,公司是一个单独的数据库表,所以这里配置的是公司的ID。 由于输入数字比较枯燥且容易出错。所以我做了个ListBox, DataTextField显示公司名,DataValueField为公司的ID,这样就可以从ListBox里面来选,不容易错。 但是问题是公司较多时(比如说1000个),从ListBox里面找到正确的公司名也变的效率低下,所以我又做了一个TextBox和一个Button, 点击Button时,以TextBox中的text值为匹配关键字,把ListBox中不包含关键字的项删掉,这样查找的范围就小了,比较容易找。代码如下:

<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="匹配" onclick="Button1_Click" />
<br/>
<asp:ListBox ID="ListBox1" runat="server" DataSourceID="SupplierData"
DataTextField="Name" DataValueField="SupplierID" Rows="1"
SelectedValue='<%# Bind("SID") %>'></asp:ListBox>
<br />
</EditItemTemplate>



protected void Button1_Click(object sender, EventArgs e)
{
ListBox l = pDetail.FindControl("ListBox1") as ListBox;
TextBox t = pDetail.FindControl("TextBox1") as TextBox;
string s = t.Text;

for (int i = l.Items.Count - 1; i >= 0; i--)
{
if (!l.Items[i].Text.Contains(s))
{
l.Items.Remove(l.Items[i]);
}
}
}



不过始终觉得这种实现方法并不好,显得很粗糙。
期望的实现方法如下:
ListBox变的可以编辑,编辑ListBox中的文字后,点下拉时,自动选择第一个匹配的ListBox选项。好像应用程序里可以用一个叫ComboBox的控件实现,但是网页上好像不能用这个控件。
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc_ant 2015-07-29
  • 打赏
  • 举报
回复


bootStrap
Justin-Liu 2015-07-29
  • 打赏
  • 举报
回复
自动完成是一种解决方案 或者 可以看看devexpress的combobox,自带搜索
  • 打赏
  • 举报
回复
代码怎么都能实现,你现在需要的是如何能快速匹配和看起来专业点, 那你就去网上找案例。 想在快点就输入拼音前大写字母。专业更快, 看起来还专业
  • 打赏
  • 举报
回复
换Js控件,比如你搜索下autocomplete jquery

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧