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. USB总线-Linux内核USB设备驱动之UAC2驱动分析(十)

    1.概述 UVC(USB Audio Class)定义了使用USB协议播放或采集音频数据的设备应当遵循的规范.目前,UAC协议有UAC1.0和UAC2.0. UAC2.0协议相比UAC1.0协议,提供 ...

  2. Linux Kernel Utilization Clamping简介

    随着linux内核调度技术的不断演进,目前存在多个调度类(stop.deadline.rt.cfs.idle)以满足不同性质和要求的任务(task)的调度需求.对于用户空间来说,完全公平调度器(CFS ...

  3. seaborn.lmplot详解

    官方文档 首先我们要知道,lmplot是用来绘制回归图的. 让我们来看看他的API: seaborn.lmplot(x, y, data, hue=None, col=None, row=None,  ...

  4. 2022年第十八届 GOPS 全球运维大会资料分享

    全球运维大会是国内第一个运维行业大会,面向互联网.金融.通信及传统行业广大运维技术人员,旨在传播先进技术思想和理念,分享业内最佳实践. 2022年第十八届 GOPS 全球运维大会(深圳站)共分为18个 ...

  5. centos7安装python3.12

    centos7 安装升级 python3.12 centos7 默认的 gcc 和 g++ 版本都很低,在有 --enable-optimizations 选项时会编译报错,因此要在 scl 环境下编 ...

  6. 哈希(C语言)

    文章目录 1.数据结构--哈希表 1.1哈希表的工作原理 1.2哈希表的代码实现 2.哈希算法 2.1 哈希算法介绍 2.2C语言实现示例 本文介绍一个常用的算法--哈希算法,哈希算法依赖于哈希表来实 ...

  7. Next.js 与 Node.js 全栈应用开发:API设计、数据库连接、身份验证 | 2024版

    书接上回,到目前为止,您的应用程序只有一个主页.让我们学习如何使用布局和页面创建更多路线. 在本章之中我们需要讨论: dashboard使用文件系统路由创建路由. 了解创建新路线段时文件夹和文件的作用 ...

  8. setTimeout 的方式实现 setInteval

    setTimeout(function fn(){ setTimeout(fn,interval); },interval); 这个模式链式调用了setTimeout(),每次函数执行的时候都会创建一 ...

  9. Visual Studio 存在版本之间冲突

    1 . 检查项目中有没有重复引用的包,如果有的话卸掉一个. 2.. 检查项目中引用的包是否自带所重复的包,这样会导致项目之间引发包冲突. 举个例子: 我的项目里ICSharpCode.SharpZip ...

  10. vue3:computed

    扫码或者点击文字后台提问 原文: https://mp.weixin.qq.com/s/36dd--oj6jmkZblfJRh4iw computed 支持选项式写法 和 函数式写法 1.选项式写法 ...