您的位置:首页 > 其它

左右两个列表框项之间的添加、移除、上下移动

2009-07-12 21:24 519 查看
左右两个列表框项之间的添加、移除、上下移动的JS脚本:

<script language="javascript" type="text/javascript">
// <!CDATA[
//双击source某项时添加该项到destination

//双击list某项时删除该项

//将source选择项全部添加到destination

//将source所有项全部添加到destination

//将list选择项全部删除

//删除list所有项
//上移list某选择项

//下移list某选择项

//保存list列表框所有项到hf隐藏域

//双击lstSource列表框

//双击lstDestination列表框

//添加(从左往右)

//全部添加(从左往右)

//移除(从右往左)

//全部移除(从右往左)

//上移

//下移

//保存所有的列表框数据项到隐藏域
// ]]>
</script>但是,通过JS脚本只是改变了列表框在客户端的各项内容,如果想保持列表框服务器端和客户端的内容一致,需借助HiddenField空间。页面元素代码如下:

<table>
<tr>
<td>
<asp:ListBox ID="lstSource" runat="server" Height="169px" Width="74px"
SelectionMode="Multiple" ondblclick="return lstSource_dblclick()">
</asp:ListBox>
</td>
<td>
<table class="style1">
<tr>
<td>
<input id="btnAdd" type="button" value="添加" onclick="return btnAdd_onclick()" /></td>
</tr>
<tr>
<td>
<input id="btnAddAll" type="button" value="全部添加" onclick="return btnAddAll_onclick()" /></td>
</tr>
<tr>
<td>
<input id="btnDelete" type="button" value="移除" onclick="return btnDelete_onclick()" /></td>
</tr>
<tr>
<td>
<input id="btnDeleteAll" type="button" value="全部移除" onclick="return btnDeleteAll_onclick()" /></td>
</tr>
</table>
</td>
<td>

<asp:ListBox ID="lstDestination" runat="server" Height="169px" Width="74px"
SelectionMode="Multiple" ondblclick="return lstDestination_dblclick()">
</asp:ListBox>
</td>
<td>
<table class="style1">
<tr>
<td>
<input id="btnUp" type="button" value="上移"
onclick="return btnUp_onclick()" /></td>
</tr>
<tr>
<td>
<input
id="btnDown" type="button" value="下移" onclick="return btnDown_onclick()" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
 </td>
<td align="center">
<asp:Button
ID="btnSubmit" runat="server" onclick="btnSubmit_Click" Text="确 定"
OnClientClick="SaveAllList()" UseSubmitBehavior="False" />
</td>
<td>

 </td>
<td>
 </td>
</tr>
</table>

<asp:HiddenField ID="hfListSource" runat="server" />
<asp:HiddenField ID="hfListDestination" runat="server" />后台代码CS文件的Page_Load事件代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindSource();
BindDestination();
}
else
{
lstSource.Items.Clear();
string[] list = hfListSource.Value.Split('#');
for (int i = 0; i < list.Length - 1; i++)
{
string[] t = list[i].Split(':');
lstSource.Items.Add(new ListItem(t[0], t[1]));
}

lstDestination.Items.Clear();
list = hfListDestination.Value.Split('#');
for (int i = 0; i < list.Length - 1; i++)
{
string[] t = list[i].Split(':');
lstDestination.Items.Add(new ListItem(t[0], t[1]));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: