几个常用的控件(2)

目录

一、单选按钮Radiobutton和RadioButtonList

1、Radiobutton控件

(1)button控制方式

(2)Radiobutton控制方式

2、RadiobuttonList控件

二、列表框ListBox和下拉列表DropdownList

1、ListBox

2、DropdownList

三、面板控件panel

四、日历

五、FileUpLoad

六、隐藏域HidderField


前面一篇中介绍了几个常用的控件,这篇继续学习常用的控件。

一、单选按钮Radiobutton和RadioButtonList

        前面简单的看了一下这两个控件长什么样子,下面我们试着用小例子来学习一下这两个的使用差别。

用例一:使用这些按钮来选择图片,该怎么操作呢?

1、Radiobutton控件

        首先,尝试使用单个按钮Radiobutton来实现:

拖动一个Image控件和四个Radiobutton控件,如下摆放:

控制使用哪个图片有两种方式,一种是直接加一个button,然后选择一个Radiobutton,点一下button,这种是比较繁琐的;另一种是直接修改每个Radiobutton的功能。但是作为初学者,一定不能选择跳过(说给我自己听的,以前跳过的太多后面后悔也不知道咋补了),下面先加一个button试试如何让他显示吧:

(1)button控制方式

双击button添加其功能:

        protected void Button3_Click(object sender, EventArgs e)
        {
            if (RadioButton1.Checked)
            {
                this.Image1.ImageUrl = "Images/1.png";
            }
            if (RadioButton2.Checked)
            {
                this.Image1.ImageUrl = "Images/2.png";
            }
            if (RadioButton3.Checked)
            {
                this.Image1.ImageUrl = "Images/3.png";
            }
            if (RadioButton4.Checked)
            {
                this.Image1.ImageUrl = "Images/4.png";
            }
        }

启动,然后运行一下试试:

 

 

 

我们可以看到,四张倒是都能显示,但是有一个大大的缺点就是,这个RadioButton一旦被选择,那么它就回不去了,即一直显示的是被选的状态。我们肯定不希望是这么个现象的,要怎么做才能不出现在这种问题呢,我们继续往下看。

(2)Radiobutton控制方式

删除Button控件,依次修改每个Radiobutton的功能:

 protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/1.png";
        }

 protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/2.png";
        }

protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/3.png";
        }

protected void RadioButton4_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/4.png";
        }

这是我的想法,至于行不行呢,咱们边走边看吧:

好吧,确实不行,应该怎么用呢?不理解。。。。。(慢慢来吧)

先解决(1)中提到的问题吧。这时候就需要使用到RadiobuttonList控件。

2、RadiobuttonList控件

我们可以看到,默认状态下,该列表是竖向排列的,那么想要它横向排列,该怎么做呢?

只需要修改RadiobuttonList的属性RepeatDirection为horizontal即可。

 下面,按照要求进行修改它们的功能:

不加按钮的时候,怎么都不出来图片,这是为什么我不太理解。。。。。。

所以被迫加上按钮,就可以按照要求跳转了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

         protected void Button1_Click(object sender, EventArgs e)
         {
             string r = RadioButtonList1.SelectedItem.Text;
             if (r == "1")
             {
                 Image1.ImageUrl = "Images/1.png";
             }
             if (r == "2")
             {
                 Image1.ImageUrl = "Images/2.png";
             }
             if (r == "3")
             {
                 Image1.ImageUrl = "Images/3.png";
             }
             if (r == "4")
             {
                 Image1.ImageUrl = "Images/4.png";
             }
         }
        
    }
}

 

二、列表框ListBox和下拉列表DropdownList

        这两个控件基本上是一样的,但是显示的效果是不同的,ListBox是将所有选择都显示且可以多选,但是DropdownList一次只显示一个且一次只能选择一个。

1、ListBox

       

就是一个这样的框,在这个框里面可以添加很多的选择,例如:

运行显示就是这样子的:

前面说的可以多选,要多选的话就需要修改属性:SelectionMode,修改为Multiple,修改看看效果:

 按着Ctrl键,就可以多选了:

2、DropdownList

加上选择的话,一次只显示一个:

运行显示的样子(这个框拉的有点大了,哈哈哈哈,等会改小点):

        这是直接加上去的,后面也可以追加上去。使用的语句是DropDownList1.Items.Add("");

但是加的时候要注意,只能加一次,而不能每按一次就加一次,这时候,就可以用到以前使用过一次的IsPostBack。

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DropDownList1.Items.Add("凉拌黄瓜");
                DropDownList1.Items.Add("西红柿炒鸡蛋");
            }
        }

单击button之后,就可以看到加上去的菜了:

下面按照上面的两种方式,选择之后,显示“你选择了:** ”

protected void Button2_Click(object sender, EventArgs e)
        {
            Label1.Text = "你选择了:";
            Label1.Text += ListBox1.SelectedItem.Text;
        }

protected void Button3_Click(object sender, EventArgs e)
        {
            Label2.Text = "你选择了:";
            Label2.Text += DropDownList1.SelectedItem.Text;
        }

但是,出现了一个错误,如果用列表框,选择之后,显示的是第一个选择的,这个应该怎么修改呢?

 暂时不清楚,等脑子清醒了在想吧。

如果有两个下拉列表,那么如何让它们联动呢?

我的想法是,将两个分别设置,但是有一个问题,就是有可能会错位,比如说我第一个设置的是省份,甘肃、新疆,市有定西、乌鲁木齐,如果选择错误的话就有可能出现新疆-定西这种情况。显然,这是错误的情况,所以设置的时候应该省份的时候,才去选择市。

先添加省份:

 

这里设置value是因为后面需要:

添加的时候发现这个会出错了,因为前面switch后面的字符型,所以需要修改成int型:

还是会出错:

为什么会出现这个错误呢?在课堂里也出现了这个错误,但是这个错误有时候却不会出现,所以这个需要再搜搜资料。

        注释掉这句话之后,发现我连前面的功能是错误的,首先,我设置是第一个下拉框的Value值,但是我前面写的是第二个下拉框的 value,所以是错的。最终的代码应该是如下的:

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList3.Items.Clear();
     
            switch (Convert.ToInt32(DropDownList2.SelectedValue))
            {
                case 0:
                    DropDownList3.Items.Add("定西");
                    DropDownList3.Items.Add("兰州");
                    DropDownList3.Items.Add("平凉");
                    break;
                case 1:
                    DropDownList3.Items.Add("乌鲁木齐");
                    DropDownList3.Items.Add("石河子");
                    DropDownList3.Items.Add("喀什");
                    break;
            }
        }

截图如下: 

下面就修改label的功能:

在这句话后面加一个+ "" 就可以正常运行了,先记住吧。。(后面又不能正常运行了,啊啊啊啊啊啊,真的是一阵一阵的,最后发现,首先要修改一下第一个下拉框,才能使用button控件,如果不设置,就会出现上面的错误,因为:不设置第一个的时候可能switch后面没值,所以根本无法判断是哪种情况,所以会错误)

protected void Button4_Click(object sender, EventArgs e)
        {
            Label3.Text = "你在:";
            Label3.Text += DropDownList2.SelectedItem.Text + DropDownList3.SelectedItem.Text + "";
        }

最终结果如下: 

 

三、面板控件panel

四、日历

就和平时我们看的日历一样,除此之外,可以通过自动套用格式来修改日历的样式:

五、FileUpLoad

        文件上传的时候我们通常会遇见这种控件,但是最终实现的操作还是双击设置的功能。

六、隐藏域HidderField

才开始学,先学习到核心的几个控件就好了,后面的这个知道有这个东西就好,以后用的时候再慢慢研究吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/477488.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

macOS 通过 MacPorts 正确安装 MySQL 同时解决无法连接问题

如果你通过 sudo port install 命令正常安装了 MySQL,再通过 sudo port load 命令启动了 MySQL Server,此刻却发现使用 Navicat 之类的 GUI 软件无法连接,始终返回无法连接到 127.0.0.1 服务器。这是一个小坑,因为他默认使用了 So…

(day 15)JavaScript学习笔记(对象3)

概述 这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。 今天继续学习对象,主要是Object.create()、原型链、修改原型指…

IPv6介绍

IPv6(互联网协议版本6)是用于互联网的最新网络层通信协议,旨在解决IPv4地址耗尽的问题,并提供了多项改进。IPv6于1998年由互联网工程任务组(IETF)标准化,作为IPv4的后继者。下面是IPv6的一些详细…

Linux - 应用层HTTPS、传输层TCP/IP模型中典型协议解析

目录 应用层:自定制协议实例 HTTP协议首行头部空行正文http服务器的搭建 HTTPS协议 传输层UDP协议TCP协议 应用层: 应用层负责应用程序之间的沟通—程序员自己定义数据的组织格式 应用层协议:如何将多个数据对象组织成为一个二进制数据串进行…

【文末附gpt升级4.0方案】英特尔AI PC的局限性是什么

为什么要推出英特尔AI PC? 英特尔AI PC的推出无疑为AIGC(生成式人工智能)的未来发展开启了一扇新的大门。这种新型的计算机平台,通过集成先进的硬件技术和优化的软件算法,为AIGC提供了更为强大和高效的支持&#xff0…

【探讨】基于卷积神经网络深度学习模型的光场显微三维粒子空间分布重建

光场显微粒子图像测速技术通过单光场相机即可实现微尺度三维速度场的测量,但单光场相机角度信息有限,导致粒子重建的轴向分辨率低、重建速度慢。基于此,提出一种基于卷积神经网络深度学习模型的光场显微粒子三维空间分布重建方法,…

说说你对webpack的理解?解决了什么问题?

文章目录 一、背景二、问题三、是什么参考文献 一、背景 Webpack 最初的目标是实现前端项目的模块化,旨在更高效地管理和维护项目中的每一个资源 模块化 最早的时候,我们会通过文件划分的形式实现模块化,也就是将每个功能及其相关状态数据各…

深入理解:蓝绿部署与金丝雀部署

深入理解:蓝绿部署与金丝雀部署 深入理解:蓝绿部署与金丝雀部署蓝绿部署(Blue-Green Deployment)原理优缺点适用场景 金丝雀部署(Canary Deployment)原理优缺点适用场景 总结 深入理解:蓝绿部署…

便捷安全的移动支付方式:扫码登录与支付全面解析

随着移动支付的普及和便利性,扫码登录与支付作为一种快捷安全的支付方式,在各行各业得到了广泛应用。本文将深入探讨扫码登录与支付的原理、优势以及使用场景,帮助读者更好地了解这一便捷的移动支付方式。 ## 扫码登录与支付的原理 扫码登录…

MNN Session 之 CPU 算子(七)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session 之维度计算(五…

Java 程序设计 4 数学函数、字符、字符串

数学函数 Math是final类,在java.lang.Math中,所有数学函数都是静态方法。 Math类中定义了常用的 数学常数 PI : 3.14159265358979323846E : 2.7182818284590452354 方法: 三角函数:sin, cos, tan, asin, acos, atan,toRadians,toD…

mysql分页查询多用GitCode平台

目录 一、在GitCode平台AI搜索结果(这个更优) 二、在百度搜索输入“mysql Java分页查询”的输出结果: 三、推荐的文章 四、GitCode的使用 1)如搜索jdk11可以直接下载jdk11的包 2)搜索开源项目 3)如搜…

爬虫分析-基于Python的空气质量数据分析与实践

概要 本篇文章利用了Python爬虫技术对空气质量网站的数据进行获取,获取之后把数据生成CSV格式的文件,然后再存入数据库方便保存。再从之前24小时的AQI(空气质量指数)的平均值中进行分析,把数据取出来后,对数据进行数据…

大数据分析-基于Python的电影票房信息数据的爬取及分析

概要 现如今,人民群众对物质生活水平的要求已不再局限于衣食住行,对于精神文化有了更多的需求。电影在我国越来越受欢迎,电影业的发展越来越迅猛,为了充分利用互联网技术的发展,掌握电影业的态势,对信息进行…

进程的终止

进程的退出(main函数的退出) main函数的返回值叫做进程的退出码,该退出码表示进程执行的情况。例如:一个函数返回一个值时,我们要知道函数的执行情况,可以去看函数的返回值。 例子: 1 #include…

Redis相关操作高阶篇--集群搭建

Redis相关操作大全一篇全搞定-CSDN博客 Redis集群 是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要seninel哨兵也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节…

c++的学习之路:2、入门(1)

一、 C关键字 c的关键字要比c语言要多31个足足有63个,这里我只是了解了下每个有啥作用,具体使用方法以及更多的知识将在后续学习中,慢慢扩展使用,下方表格就是c的63个关键字 asmdoifreturntryautodoubleinlinetypedefdynamic_ca…

LeetCode题练习与总结:接雨水

一、题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…

【MySQL】3.1MySQL索引的介绍

目录 一、索引的概念 数据库索引 索引的作用 索引的副作用 索引创建的原则(应用场景) 适合建立索引 二、索引的分类和创建 1.普通索引 创建普通索引 1.1直接创建 1.2修改表结构的方式创建普通索引 1.3创建表时创建普通索引 2.唯一索引 2.1…

如何在Android设备上运行深度网络

返回:OpenCV系列文章目录(持续更新中......) 上一篇: 下一篇: 介绍 在本教程中,您将了解如何使用 OpenCV 深度学习模块在 Android 设备上运行深度学习网络。教程是为 Android Studio 2022.2.1 编写的。…