左右选择框,数据量大时候如何解决
左右选择框js,数据量大时候如何解决?
[解决办法]
能否说更详细些!!
[解决办法]
就是左面选完了 ,然后点移动 ,就移动到右面 ?
[解决办法]
不明白。
[解决办法]
一般这样用的数据量都是比较低的才用,如果象楼猪说的,上百条,用户在上百条中选你觉得合适吗?用户能接受?
[解决办法]
在读取选择前用筛选吧,比如按部门过滤员工的那种。
[解决办法]
过滤
[解决办法]
就是左面选完了 ,然后点移动 ,就移动到右面 ?
========================================
你可以选的时候就移动到右边,比如说 双击左边的某项将其移动到右边,同样双击右边的可以移回来。
[解决办法]
太多的数据,不适合这样做.
[解决办法]
</tr>
<tr>
<td style="width: 1px; height: 26px">
<asp:Button ID="allToLeft" runat="server" Text="<<" Width="83px" OnClick="allToLeft_Click" /></td>
</tr>
</table>
</div>
CS:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
//if (!Page.IsPostBack)
//{
// ListItem item1 = new ListItem("张三");
// ListItem item2 = new ListItem("李四");
// ListItem item3 = new ListItem("王五");
// ListItem item4 = new ListItem("王五的儿子");
// ListItem item5 = new ListItem("王五的儿媳妇");
// leftList.Items.Add(item1);
// leftList.Items.Add(item2);
// leftList.Items.Add(item3);
// leftList.Items.Add(item4);
// leftList.Items.Add(item5);
//}
}
protected void allToRight_Click(object sender, EventArgs e)
{
foreach (ListItem item in this.leftList.Items)
{
rightList.Items.Add(item);
}
leftList.Items.Clear();
}
protected void ToRight_Click(object sender, EventArgs e)
{
//插入删除在一个循环里能做么?
for (int i = 0; i < this.leftList.Items.Count; i++)
{
if (leftList.Items[i].Selected)
{
this.rightList.Items.Add(new ListItem(leftList.Items[i].Text, leftList.Items[i].Value));
}
}
//Delete item from leftList, when it add item to rightList successful
for (int i = this.leftList.Items.Count - 1; i >= 0; i--)
{
if (leftList.Items[i].Selected)
{
this.leftList.Items.Remove(leftList.Items[i]);
}
}
}
protected void ToLeft_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.rightList.Items.Count; i++)
{
if (rightList.Items[i].Selected)
{
this.leftList.Items.Add(new ListItem(rightList.Items[i].Text, rightList.Items[i].Value));
}
}
//Delete item from rightList, when it add item to leftList successful
for (int i = this.rightList.Items.Count - 1; i >= 0; i--)
{
if (rightList.Items[i].Selected)
{
this.rightList.Items.Remove(rightList.Items[i]);
}
}
}
protected void allToLeft_Click(object sender, EventArgs e)
{
foreach (ListItem item in this.rightList.Items)
{
leftList.Items.Add(item);
}
rightList.Items.Clear();
}
public string[][] GetValue
{
set
{
for (int i = 0; i < value[0].Length; i++)
{
leftList.Items.Add(new ListItem(value[0][i], value[1][i]));
}
}
}
public string this[string key]
{
set
{
leftList.Items.Add(new ListItem(key, value));
}
}
}
[解决办法]
感觉,如果数据量实在太大的话,一部分js用异步调用
筛选出您要的数据。
之前做的一个省市联动的,因为要包含太多的市,会导致市太多了,js变的很大
改成异步调用筛选后使用
[解决办法]
学习