【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中,并弹窗显示 ...
随机推荐
- uprobe
本章的我们来学习uprobe ,顾名思义,相对于内核函数/地址的监控,主要用于用户态函数/地址的监控.听起来是不是有点神奇,内核怎么监控用户态函数的调用呢?本章的内容包括: 如何使用uprobe 内核 ...
- 墨天轮访谈 | SelectDB 衣国垒:Apache Doris(incubating)1.0版本特性解析与未来规划
分享嘉宾:衣国垒 Apache Doris Committer.SelectDB 联合创始人&CTO 整理:墨天轮社区 导读 大家好,我是来自Apache Doris社区的衣国垒,也是Sele ...
- C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- LLM应用实战: OpenAI多代理新作-Swarm
1.背景 本qiang~关注到OpenAI两周前发布的轻量级多代理框架Swarm,因此想要深入了解了一下,运行了官方提供的例子,整理并总结一些心得体会~ 源码非常简单,各位看官们可以小读一下,本文采用 ...
- css常用布局之flex布局
Flexbox 是一个一维的布局模式,它可以轻松地在不同的方向上排列子元素(称为 flex 项),即使它们的大小是未知或者是动态变化的.以下是 Flexbox 的一些关键概念: 容器和项: 启用 Fl ...
- 《Selenium自动化测试实战:基于Python》之 基于Docker与Selenium Grid的测试技术
基于Docker与Selenium Grid的测试技术 10.1 Selenium Grid简介 尽管即将推出的Selenium 4.0对Seleni ...
- 🎈Fluent Editor 富文本开源2个月的总结:增加格式刷、截屏、TypeScript 类型声明等新特性
你好,我是 Kagol,个人公众号:前端开源星球. Fluent Editor 是一个基于 Quill 2.0 的富文本编辑器,在 Quill 基础上扩展了丰富的模块和格式,框架无关. 功能强大.开箱 ...
- UIAbility组件生命周期
当用户打开.切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换.UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-4-启动浏览器-基于Maven(详细教程)
1.简介 上一篇文章,宏哥已经在搭建的java项目环境中添加jar包实践了如何启动浏览器,今天就在基于maven项目的环境中给小伙伴们或者童鞋们演示一下如何启动浏览器. 2.eclipse中新建mav ...
- CommonsCollections1(基于ysoserial)
准备环境 JDK1.7(7u80).commons-collections(3.x 4.x均可这里使用3.2版本) JDK:https://repo.huaweicloud.com/java/jdk/ ...