ASP.NET ListBox的使用与其上下移动方法

//前台
                <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;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值