我正在构建一个Web应用程序,它需要在ListBox样式的控件中显示100个(可能超过1000个)项目。但是,我需要为每个项目保留的不只是text
和value
数据。
我尝试在itemtemplate中使用带有表的转发器,它可以工作并显示我想要的方式,但性能很差。
数据来自SQL数据源。
有没有办法自定义ListBox控件以允许每个列表项有多个值?
答案 0 :(得分:0)
让我一步一步解释
首先,您需要一个多选选项启用列表框,您必须使用列表框,如
<asp:ListBox ID="ListBox1" runat="server" Height="149px" SelectionMode="Multiple" Width="113px">
然后你想在ListboxItem上执行Opration,因为你必须执行像
这样的操作 private void UpClick()
{
// only if the first item isn't the current one
if(listBox1.ListIndex > 0)
{
// add a duplicate item up in the listbox
listBox1.AddItem(listBox1.Text, listBox1.ListIndex - 1);
// make it the current item
listBox1.ListIndex = (listBox1.ListIndex - 2);
// delete the old occurrence of this item
listBox1.RemoveItem(listBox1.ListIndex + 2);
}
}
private void DownClick()
{
// only if the last item isn't the current one
if((listBox1.ListIndex != -1) && (listBox1.ListIndex < listBox1.ListCount - 1))
{
// add a duplicate item down in the listbox
listBox1.AddItem(listBox1.Text, listBox1.ListIndex + 2);
// make it the current item
listBox1.ListIndex = listBox1.ListIndex + 2;
// delete the old occurrence of this item
listBox1.RemoveItem(listBox1.ListIndex - 2);
}
}
对于全选,您可以清除列表框2并将列表框1中的所有项目填充到列表框2中。