//前台
<table id="TableOne" runat="server" style="text-align: center; width: 280px; height: 303px;">
<tr>
<td>
<asp:Panel ID="panTwo" runat="server">
<asp:Button runat="server" Text="↑" class="buttonCss" ID="BtnUp" OnClick="BtnUp_Click">
</asp:Button>
<asp:Button runat="server" Text="↓" class="buttonCss" ID="BtnDown" OnClick="BtnDown_Click">
</asp:Button>
</asp:Panel>
</td>
<td>
<asp:ListBox ID="listType" Style="margin-left: 10px;" runat="server" Width="180px"
Height="400px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
//后台
/// <summary>
/// 初始化数据
/// </summary>
private void Databind()
{
DataTable dt = GetTreeViewData();
DataView view = new DataView(dt);
foreach (DataRowView row in view)
{
listType.Items.Add(new ListItem(row["Name"].ToString(), row["Id"].ToString()));
}
}
/// <summary>
/// 上移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnUp_Click(object sender, EventArgs e)
{
// 没有项,或第一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[0].Selected) return;
for (int i = 1; i < this.listType.Items.Count; i++)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i - 1], this.listType.Items[i]);
}
}
/// <summary>
/// 下移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDown_Click(object sender, EventArgs e)
{
// 没有项,或最后一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[this.listType.Items.Count - 1].Selected) return;
for (int i = this.listType.Items.Count - 1; i > -1; i--)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i], this.listType.Items[i + 1]);
}
}
/// <summary>
/// 上下移动方法
/// </summary>
/// <param name="fFront"></param>
/// <param name="fCurrent"></param>
private static void ChangeProperty(ListItem fFront, ListItem fCurrent)
{
string fText = fFront.Text;
string fValue = fFront.Value;
bool fSelected = fFront.Selected;
fFront.Text = fCurrent.Text;
fFront.Value = fCurrent.Value;
fFront.Selected = fCurrent.Selected;
fCurrent.Text = fText;
fCurrent.Value = fValue;
fCurrent.Selected = fSelected;
}
<table id="TableOne" runat="server" style="text-align: center; width: 280px; height: 303px;">
<tr>
<td>
<asp:Panel ID="panTwo" runat="server">
<asp:Button runat="server" Text="↑" class="buttonCss" ID="BtnUp" OnClick="BtnUp_Click">
</asp:Button>
<asp:Button runat="server" Text="↓" class="buttonCss" ID="BtnDown" OnClick="BtnDown_Click">
</asp:Button>
</asp:Panel>
</td>
<td>
<asp:ListBox ID="listType" Style="margin-left: 10px;" runat="server" Width="180px"
Height="400px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
//后台
/// <summary>
/// 初始化数据
/// </summary>
private void Databind()
{
DataTable dt = GetTreeViewData();
DataView view = new DataView(dt);
foreach (DataRowView row in view)
{
listType.Items.Add(new ListItem(row["Name"].ToString(), row["Id"].ToString()));
}
}
/// <summary>
/// 上移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnUp_Click(object sender, EventArgs e)
{
// 没有项,或第一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[0].Selected) return;
for (int i = 1; i < this.listType.Items.Count; i++)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i - 1], this.listType.Items[i]);
}
}
/// <summary>
/// 下移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDown_Click(object sender, EventArgs e)
{
// 没有项,或最后一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[this.listType.Items.Count - 1].Selected) return;
for (int i = this.listType.Items.Count - 1; i > -1; i--)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i], this.listType.Items[i + 1]);
}
}
/// <summary>
/// 上下移动方法
/// </summary>
/// <param name="fFront"></param>
/// <param name="fCurrent"></param>
private static void ChangeProperty(ListItem fFront, ListItem fCurrent)
{
string fText = fFront.Text;
string fValue = fFront.Value;
bool fSelected = fFront.Selected;
fFront.Text = fCurrent.Text;
fFront.Value = fCurrent.Value;
fFront.Selected = fCurrent.Selected;
fCurrent.Text = fText;
fCurrent.Value = fValue;
fCurrent.Selected = fSelected;
}