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="&gt;&gt;&gt;" OnClick="Button1_Click" class="border-Orange"/>
</div>
<br />
<div class="faraway">
<asp:Button ID="Button2" runat="server" Text="&lt;&lt;&lt;" 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)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序的更多相关文章

  1. JavaScript 下拉框 左边添加至右边

    关于如何实现右边下拉框中选项的排序一时没有好的解决方法,等想到了回来补充 <!DOCTYPE html> <html> <head> <meta charse ...

  2. vuejs自定义过滤器根据搜索框输入的值,筛选复杂的列表数据

    如题所示,自定义过滤器根据搜索框输入的值,筛选复杂的列表数据.如图所示: html代码: <input type="text" placeholder="姓名/账号 ...

  3. C# 生成月份及天选择列表,方便做下拉框联动

    月份及天选择列表,很方便做下拉框联动 /// <summary> /// 获取月份选择列表(根据当前语言环境显示月份名称) /// </summary> private IEn ...

  4. jquery下拉框实现将左边的选项添加到右边区域

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 下拉框——把一个select框中选中内容移到另一个select框中遇到的问题

    在使用jQuery实现把一个select框中选中内容移到另一个select框中功能时遇到了一个问题,就是点击按钮时内容可以到另一个select框中,但是到了另一个select框中的内容却很快闪退回原来 ...

  6. 向redis中添加删除list列表

    转: 向redis中添加删除list列表 2018年04月18日 15:44:54 luo_yu_1106 阅读数:4082   一.添加 向redis中添加队列有两种方式 1.lpush l是lef ...

  7. 用户添加到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 ...

  8. C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框

    最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大 ...

  9. MFC 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,已解决。

    CKagulaCEdit是CEdit的一个继承类,m_edit的CKagulaCEdit类型的一个变量 调用的时候,是这样的: 编辑框中字体大小改变,行高不能改变,只能显示一半的问题,问题如下: 这时 ...

  10. bootstrap模态框modal使用remote第二次加载显示相同内容解决办法

    bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 ...

随机推荐

  1. spring上 -基于Xml配置bean笔记

    4,Spring 内容 7,快速入门 需求:通过 Spring 的方式[配置文件], 获取 JavaBean: Monster 的对象, 并给该的对象属性赋值, 输出该对象信息. 代码结构: lib ...

  2. 高通ramdump

    背景 高通平台下提供了一个工具,专门用来抓取内核死机以后的dump信息.如果只是非系统层面的crash(例如底层应用,安卓程序),则不能抓取dump信息. 在阅读一些文档的时候知道有这个功能,但是一直 ...

  3. Linux进程调度-组调度及带宽控制

    1. 概述 组调度(task_group)是使用Linux cgroup(control group)的cpu子系统来实现的,可以将进程进行分组,按组来分配CPU资源等. 比如,看一个实际的例子: A ...

  4. MySQL故障诊断常用方法手册(含脚本、案例)

    当你在使用MySQL数据库时,突然遇到故障,你是否会感到迷茫? ● 数据库响应变慢.SQL慢.数据库插入出现延时-- ● 表不见了.日志出现多个断连记录-- ● 非法断电造成MySQL启动报错.同步复 ...

  5. springboot admin 整合nacos,context-path问题

    1.在使用springboot admin 整合nacos时发现问题,springboot admin server访问admin client的默认地址为http://ip:port/actuato ...

  6. 容器虚拟化平台 KSV 1.5 发布:部署更便捷,适配更多信创需求!

    报告!我们又迎来了一次重磅更新: 近日,由青云科技打造的轻量化虚拟机管理平台--KSV 容器虚拟化 1.5 版本正式发布! KSV 1.5 好在什么地方?逐个来解释 新增基于模板创建虚拟机.克隆虚拟机 ...

  7. for-each循环陷阱

    for-each删除元素报错 public static void main(String[] args) { List<String> list = new ArrayList<& ...

  8. H5移动端字体自适应(也适用于宽高)

    原文地址: https://mp.weixin.qq.com/s/hhmav2sbAgb7w17ipVZiTw 方法一:纯css方法, 精确度高,IOS 和 安卓 字体大小同等比例1.1 以16px为 ...

  9. pytest的conftest.py文件讲解

    一.conftest.py的特点 1.可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture 2.conftest.py与运行的用 ...

  10. .NET周刊【10月第3期 2024-10-20】

    国内文章 我被 .NET8 JIT 的一个BUG反复折磨了半年之久(JIT tier1 finally optimizations) https://www.cnblogs.com/calvinK/p ...