【C#】【平时练习】将左边列表框(List)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序

Aspx - 点击查看代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_Demo01.aspx.cs" Inherits="WebApplication_ListBox.WebForm_Demo01" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style>
        body {
            margin:0;
            padding:0;
            border:0;
            outline:none;
        }
        .faraway {
            margin:10px;
            padding:5px;
        }
    </style>
    <link href="css/xrilang-locationLayout.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server" class="center-al">
        <div class="div-block-online">
            <div class="div-block-online border-r  border-BlueBlackish">
            <asp:ListBox ID="lbMonth1" runat="server" Height="200px" Width="100px" SelectionMode="Multiple">
                <asp:ListItem Value="1">January</asp:ListItem>
                <asp:ListItem Value="2">February</asp:ListItem>
                <asp:ListItem Value="3">March</asp:ListItem>
                <asp:ListItem Value="4">April</asp:ListItem>
                <asp:ListItem Value="5">May</asp:ListItem>
                <asp:ListItem Value="6">June</asp:ListItem>
                <asp:ListItem Value="7">July</asp:ListItem>
                <asp:ListItem Value="8">August</asp:ListItem>
                <asp:ListItem Value="9">September</asp:ListItem>
                <asp:ListItem Value="10">October</asp:ListItem>
                <asp:ListItem Value="11">November</asp:ListItem>
                <asp:ListItem Value="12">December</asp:ListItem>
            </asp:ListBox>
                </div>
            <div class="div-block-online" style="height:200px">
                   <div class="faraway">
                    <asp:Button ID="Button1" runat="server" Text=">>>" OnClick="Button1_Click" class="border-Orange"/>
                   </div>
                   <br />
                 <div class="faraway">
                    <asp:Button ID="Button2" runat="server" Text="<<<" OnClick="Button2_Click" class="border-Orange" />
                </div>
            </div>
            <div  class="div-block-online border-r border-BlueBlackish">
             <asp:ListBox ID="lbMonth2" runat="server" Height="200px" SelectionMode="Multiple" style="margin-top: 0px" Width="100px">
            </asp:ListBox>
            </div>
        </div>
        <p>
            <asp:Button ID="btTest" runat="server" Text="查询" OnClick="btTest_Click" class="border-Orange"/>
        </p>
        <div class="div-block border-GreenBlackish">
            <asp:Label ID="lblShow1" runat="server" Text=""></asp:Label>
           </div> 
        <div class="div-block border-GreenBlackish">
            <asp:Label ID="lblShow2" runat="server" Text="" ></asp:Label>
        </div>
    </form>
</body>
</html>
cs - 点击查看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication_ListBox
{
    public partial class WebForm_Demo01 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //@萌狼蓝天-Test05
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //下面的是老师的方法
            if (lbMonth1.SelectedIndex > -1)
            {
                //把左侧选中项添加到右侧
                //lbMonth2.Items.Add(lbMonth1.SelectedItem);
                //lbMonth2.Items.Insert(0,lbMonth1.SelectedItem);
                //2.1
                //检查右侧所有项,确保插入项的Value按顺序位 int correctIndex
                //2.2 在正确位置插入
                //将排序计算划为单独的方法直接使用,后续直接优化方法算法即可。
                lbMonth2.Items.Insert(OneToTwo(), lbMonth1.SelectedItem);
                //3.在左侧列表框中删除选中项
                lbMonth1.Items.RemoveAt(lbMonth1.SelectedIndex);
            }else {
                lblShow1.Text = "INDEX NOT > 0";
            }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            if (lbMonth2.SelectedIndex > -1)
            {
                lbMonth1.Items.Insert(TwoToOne(), lbMonth2.SelectedItem);
                lbMonth2.Items.RemoveAt(lbMonth2.SelectedIndex);
            }
            else
            {
                lblShow1.Text = "INDEX NOT > 0";
            }
        }
        /*
         * 左边往右边添加
         */
        protected int OneToTwo() {
            int correctIndex = 0;
            int valued = Int32.Parse(lbMonth1.SelectedItem.Value);
            if (lbMonth2.Items.Count == 0){
                return 0;
            };
            if (lbMonth2.Items.Count - 1 == 0) {
                if (valued > textToValue(lbMonth2.Items[lbMonth2.Items.Count - 1].Value))
                {
                    return lbMonth2.Items.Count;
                }
                else
                {
                    return 0;
                }
            }
            for (int i = 0; i < lbMonth2.Items.Count - 1; i++)
            {
                int valuei = textToValue(lbMonth2.Items[i].Value);
                int valueii = textToValue(lbMonth2.Items[i + 1].Value);
                //不大不小
                if (valued > valuei & valued < valueii && valueii!=0)
                {
                    correctIndex = i + 1;
                    lblShow1.Text = ("[" + i + "]C2(不大不小):" + valuei + "<[" + valued + "]<" + valueii);
                    break;
                }
                //最大,新增
                else if (valued > textToValue(lbMonth2.Items[lbMonth2.Items.Count - 1].Value))
                {
                    lblShow1.Text = ("[" + i + "]C2(最大新增):" + textToValue(lbMonth2.Items[lbMonth2.Items.Count - 1].Value) + "<[" + valued + "]");
                    correctIndex = lbMonth2.Items.Count;
                    break;
                }
                //最小,插入
                else if (valued < textToValue(lbMonth2.Items[0].Value))
                {
                    lblShow1.Text = ("[" + i + "]C2(最小新增):" + valued + "<" + textToValue(lbMonth2.Items[0].Value));
                    correctIndex = 0;
                    break;
                }
                else {
                    lblShow1.Text = "valued:"+valued+" | "+ lbMonth2.Items[lbMonth2.Items.Count - 1].Value;
                }
            }
            return correctIndex;
        }
        protected int TwoToOne()
        {
            int correctIndex = 0;
            int valued = Int32.Parse(lbMonth2.SelectedItem.Value);
            if (lbMonth1.Items.Count == 0)
            {
                return 0;
            };
            if (lbMonth1.Items.Count - 1 == 0)
            {
                if (valued > textToValue(lbMonth1.Items[lbMonth1.Items.Count - 1].Value))
                {
                    return lbMonth1.Items.Count;
                }
                else
                {
                    return 0;
                }
            }
            for (int i = 0; i < lbMonth1.Items.Count - 1; i++)
                {
                    int valuei = textToValue(lbMonth1.Items[i].Value);
                    int valueii = textToValue(lbMonth1.Items[i + 1].Value);
                    //不大不小
                    if (valued > valuei & valued < valueii)
                    {
                        correctIndex = i + 1;
                        lblShow1.Text = ("[" + i + "]C2(不大不小):" + valuei + "<[" + valued + "]<" + valueii);
                        break;
                    }
                    //最大,新增
                    else if (valued > textToValue(lbMonth1.Items[lbMonth1.Items.Count - 1].Value))
                    {
                        lblShow1.Text = ("[" + i + "]C2(最大新增):" + textToValue(lbMonth1.Items[lbMonth1.Items.Count - 1].Value) + "<" + valued);
                        correctIndex = lbMonth1.Items.Count;
                        break;
                    }
                    //最小,插入
                    else if (valued < textToValue(lbMonth1.Items[0].Value))
                    {
                        lblShow1.Text = ("[" + i + "]C2(最小新增):" + valued + "<" + textToValue(lbMonth1.Items[0].Value));
                        correctIndex = 0;
                        break;
                    }
                }
            return correctIndex;
        }
            /**
            * 将月份转为数值,方便进行比对排序
            */
            protected int textToValue(String item)
        {
            lblShow2.Text = "方法被调用:" + item;
            if (item == "1")
            {
                return 1;
            }
            else if (item == "2")
            {
                return 2;
            }
            else if (item == "3")
            {
                return 3;
            }
            else if (item == "4")
            {
                return 4;
            }
            else if (item == "5")
            {
                return 5;
            }
            else if (item == "6")
            {
                return 6;
            }
            else if (item == "7")
            {
                return 7;
            }
            else if (item == "8")
            {
                return 8;
            }
            else if (item == "9")
            {
                return 9;
            }
            else if (item == "10")
            {
                return 10;
            }
            else if (item == "11")
            {
                return 11;
            }
            else if (item == "12")
            {
                return 12;
            }
            return 0;
        }
        /**
         * 测试专用
         */
        protected void btTest_Click(object sender, EventArgs e)
        {
            lblShow1.Text = "[box1]" + "<br>" +
                "[当前选择索引]:" + lbMonth1.SelectedIndex + "<br>" +
                "[当前选择Value]:" + lbMonth1.SelectedValue + "<br>" +
                "[当前选择item]" + lbMonth1.SelectedItem + "<br>" +
                "[当前选择Mode]:" + lbMonth1.SelectionMode + "<br>"+
                "[Count]:" + lbMonth1.Items.Count + "<br>";
            lblShow2.Text = "[box2]" + "<br>" +
                "[当前选择索引]:" + lbMonth2.SelectedIndex + "<br>" +
                "[当前选择Value]:" + lbMonth2.SelectedValue + "<br>" +
                "[当前选择item]" + lbMonth2.SelectedItem + "<br>" +
                "[当前选择Mode]:" + lbMonth2.SelectionMode + "<br>"+
                "[Count]:" + lbMonth2.Items.Count + "<br>";
        }
    }
}
【C#】【平时练习】将左边列表框(List)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序的更多相关文章
- JavaScript 下拉框 左边添加至右边
		关于如何实现右边下拉框中选项的排序一时没有好的解决方法,等想到了回来补充 <!DOCTYPE html> <html> <head> <meta charse ... 
- vuejs自定义过滤器根据搜索框输入的值,筛选复杂的列表数据
		如题所示,自定义过滤器根据搜索框输入的值,筛选复杂的列表数据.如图所示: html代码: <input type="text" placeholder="姓名/账号 ... 
- C# 生成月份及天选择列表,方便做下拉框联动
		月份及天选择列表,很方便做下拉框联动 /// <summary> /// 获取月份选择列表(根据当前语言环境显示月份名称) /// </summary> private IEn ... 
- jquery下拉框实现将左边的选项添加到右边区域
		<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- 下拉框——把一个select框中选中内容移到另一个select框中遇到的问题
		在使用jQuery实现把一个select框中选中内容移到另一个select框中功能时遇到了一个问题,就是点击按钮时内容可以到另一个select框中,但是到了另一个select框中的内容却很快闪退回原来 ... 
- 向redis中添加删除list列表
		转: 向redis中添加删除list列表 2018年04月18日 15:44:54 luo_yu_1106 阅读数:4082 一.添加 向redis中添加队列有两种方式 1.lpush l是lef ... 
- 用户添加到sudoer列表## Allow root to run any commands anywhere root    ALL=(ALL)       ALL Iron     ALL=(ALL)       ALL
		将用户添加到sudoer列表 李序锴关注 2017.12.20 15:03:25字数 605阅读 4,067 默认情况下,linux没有将当前用户列入到sudoer列表中(在redhat系列的linu ... 
- C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框
		最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大 ... 
- MFC 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,已解决。
		CKagulaCEdit是CEdit的一个继承类,m_edit的CKagulaCEdit类型的一个变量 调用的时候,是这样的: 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,问题如下: 这时 ... 
- bootstrap模态框modal使用remote第二次加载显示相同内容解决办法
		bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 ... 
随机推荐
- axios有没有做过⼀些业务封装?
			啊,有的,在项⽬⾥⾯我主要是封装过axios的拦截器部分 我在请求拦截器⾥⾯做了注⼊全局token的事情,这个事⼉是因为有很多接⼝都需要这个token来做数据 鉴权,为了避免书写多次 统⼀配置了⼀下 ... 
- redis配置启动测试
			解压安装redis tar -xzvf redisxxx.xx生成解压目录 进入解压目录:执行命令 make make install 安装成功: redis默认安装位置/usr/local/bin ... 
- Data-Free,多目标域适应合并方案,简单又有效 | ECCV'24
			来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Training-Free Model Merging for Multi-target Domain Adaptation 论文地址:htt ... 
- pwn V8入门
			V8入门 && StarCTF oob 搭建环境的步骤如下: 环境搭建 #depot_tools git clone https://chromium.googlesource.com ... 
- 体验国产系统Deepin:很爽
			最近开始把之前一直吃亏的旧电脑拿出来再利用了,先还是选择了熟悉的ubuntu系列.安装了Ubuntu 22.04之后,风风火火地把需要的开发环境搭建起来,虽然桌面有些卡顿,但瑕不掩瑜玉.趁着热情又想着 ... 
- 关于如何更改Cuda的版本的一些事情
			1. 网上说的很全面了,这里我把我遇到的一些问题和解决方案罗列出来,以便未来的学习和了解. 博客的好处就体现出来了,下次你再用这个东西,就直接打开你的博客照抄就行了,不用东搜西搜了,及其方便,这种碎片 ... 
- CUDA编程学习 (3)——内存和数据定位
			1. CUDA Memories 1.1 GPU 性能如何 所有 thread 都会访问 global memory,以获取输入的矩阵元素 在执行一次浮点加法时,需要进行一次内存访问,每次访问传输 4 ... 
- 100 款支持 .NET 多版本的强大 WPF 控件库
			前言 推荐一款集成了超过100款控件的流行 XAML 控件库,同时提供了一系列常用的 .NET 帮助类-CookPopularUI.它可以简化开发流程,让我们能够更加专注于核心业务逻辑的实现. 让我们 ... 
- MPLS多协议标签交换
			多协议标签交换 MPLS(Multiprotocol Label Switching)是一种网络协议,用于在数据包交换网络中高效地进行数据路由转发.MPLS通过引入标签(Label)来对数据包进行标识 ... 
- OpenResty之resty.limit.count 模块介绍
			resty.limit.count 模块介绍: resty.limit.count 模块就是限制接口单位时间的请求数,This module depends on lua-resty-core模块,所 ... 
