没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下:

上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True"或"False"。

在前端aspx网页上,我们用一个形式来呈现友好的控件。一般来说,存储boolean值,一般使用CheckBox控件,选中得到为True,反之得到为False,这个是较理想的。但是现这里是要呈现性别,男或女。那就不能使用CheckBox控件了。最接近此要求,也许是RadioButtonList控件了。

我们在程序中,设定几个数据集,作为RadioButtonList 的数据源:

上面的Key使用int数据类型。

上面的key使用布尔数据类型。

上面的key使用string数据类型。其实还可以定义其它,这不是重要,但要理解其含义,为什么这样要这样定义,目的是什么。

下面我们实现aspx的功能,也许有些网友会直接如下写法:

这样死写法根本无需准备什么数据源。Insus.NET在想,这样做也没有什么问题。因为它这样确实可以的。看开发者开发时的想法与思维了。不过按照Insus.NET的习惯,数据呈现与程序封装,还是在cs程序中对RadioButtonList进行数据源绑定。如果后台绑定数据源,在aspx网页只会拉一个RadioButtonList控件即可。

看.aspx.cs的

上面代码是完全没有问题,或许你就是这样写的。但是Insus.NET并不会这样做,不想把任何在需要在Page_Load()事件运行的代码放在Page_Load()方法内。理想的实现,是另写一个私有方法:

在网页浏览时,看到的效果:

OK,上面只是一些曾通的RadioButtonList的数据源绑定。假如在数据源绑定时,还要根据数据,男或女把RadioButtonList的选择选中状态。

但是,偏偏在你写程序时,你会遇上是根据值去设置,它是以0或是1来判断,那我们怎样来实现了呢? 这样情况之下,需要修改一下程序:

上面浏览网页时,看到的效果,如下:

写到这里,我们会想起,真正开发时,我们是不知什么情况之下是传入Text,什么情况之下传入的是Value。嗯,我们就应该考虑到这些情形。下面Insus.NET的解决方法:

写两个私有方法,并重载。是Byvalue和ByText的。这样在引用它们时,只是传入是值或是文本即可。此时能把这个功能实现这样,也许觉得很完美。但是某一情况之下,如你是使用DropDownList去呈现一些数据。上面的方法似乎有相似之处,但是完全不能拿来使用。只完另外再写两个方法:

对吧。我们会不禁住地问,是否有一个万全之策? 解决这个问题,我们应该想到,不管是RadioButtonList还是DropDownList控件,均是继承ListControl类,如果想到这点,我们就可以把这四个私有方法,写成两个通用的:

呵呵,此时不管你是传入DropDownList还是RadioButtonList均没有问题,是吧。

平时,Insus.NET开发时,连参数也不想传入过多。是否可以做到? 如:

void SetSelectedByDataValueField(string byValue)

在较高一些C#版本,是可以解决此问题的。使用扩展方法:

那在引用时,就可以只传入一个参数:

上面一系列的动作,是解决RadioButtonList设置Selected的状态。

在面向对象以及三层开发过程中,Insus.NET基本上没有在程序中写SQL语句来存与取同数据库进行沟通。我们会在程序编写一个类,如:

上面的类别,只写一个property。因此这篇博文中,重点是说它。
用户在前台数据呈现中,作出选择,需要把选择的结果存回至数据表中,看一下语法

由于我们写property时,定义的数据类型为布尔(bool)。上面写的

objMember.Sex = this.RadioButtonListSex.SelectedItem.Value;

一个是得到string,一个需要bool。因此需要处理一下数据类型,才能纠正错误:

上面代码示例中,是把选择的值转换为布尔值。
由于开发一开始时,就为RadioButtonList控件设置了两个值,0与1。因此我们可以对上面的代码稍改一下:

拿掉高亮的代码,由于我们在Switch之前,已经定义好一个私有变量:

bool sex = true;

这样不管用户选择了男还是女,程序在跑Switch时,只有case是0时,才会去转换类型,对吧。既然是这样,我们又可以把这数据类型转换的写成:

呵呵,随便写写,望网友能看得懂。

没有什么,开发ASP.NET时随便写写,想到什么写什么的更多相关文章

  1. ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)

    概述 安全在web领域是一个永远都不会过时的话题,今天我们就来看一看一些在开发ASP.NET MVC应用程序时一些值得我们注意的安全问题.本篇主要包括以下几个内容 : 认证 授权 XSS跨站脚本攻击 ...

  2. docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用

    .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...

  3. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...

  4. Visual Studio 2015 开发 ASP.NET 5 有何变化?

    本篇博文目录: ASP.NET 5 模版 ASP.NET 5 目录结构 前端管理工具 无编译开发 Microsoft Git Provider 智能感知和错误信息 Smart Unit Testing ...

  5. ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

    ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以 ...

  6. Visual Studio Code和Docker开发asp.net core和mysql应用

    Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对 ...

  7. 005.Getting started with ASP.NET Core MVC and Visual Studio -- 【VS开发asp.net core mvc 入门】

    Getting started with ASP.NET Core MVC and Visual Studio VS开发asp.net core mvc 入门 2017-3-7 2 分钟阅读时长 本文 ...

  8. 使用VS Code开发asp.net core (上)

    本文是基于Windows10的. 下载地址: https://code.visualstudio.com/ insider 版下载地址: https://code.visualstudio.com/i ...

  9. 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)

    本文将介绍如何利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序,分为上下两篇.上篇主要介绍实现,下篇主要介绍界面. 打开Visual ...

随机推荐

  1. Java 学习的几个基础实验(Learn by doing)

    0 引子 不少情况下,学生连开发环境都搭建不好,有了实验楼,这个问题基本就解决了. 实验楼是国内首家IT在线实训平台,拥有最丰富的计算机在线实验课,而且全部免费.创业团队对师生的服务非常贴心细致. 1 ...

  2. Windows10卡顿,磁盘 内存占用100%或比较多

    1.关闭服务:Superfetch: 2.结束antimalware service executable进程,gpedit.msc下依次点击“计算机配置/管理模板/Windows组件/Windows ...

  3. CentOS使用vsftpd开启FTP服务以及配置用户

    1.安装服务 #yum install vsftpd 2.配置 #vi /etc/vsftpd/vsftpd.conf # 禁止匿名访问 anonymous_enable=NO # 允许本地用户登录F ...

  4. 第5件事 做一个有taste的产品人

    1.taste的意思是品位,也就是说产品经理应该是一个有品位的产品人.什么叫品位呢?品位指的是对事物有分辨与鉴赏的能力.品位是形象的展示,品位是内在气质的复出,品位是人生价值的体验,品位是道德修养的内 ...

  5. 实验4 IIC通讯与EEPROM接口

    1.       用C语言编程,利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上,每过一秒将这个变化写入实验板上AT24C02,当关闭实验板电源,并再次打开实验板电源时,单片机从AT24C0 ...

  6. 【VB.NET】利用纯真IP数据库查询IP地址及信息

    几年前从某个博客抄来的,已经忘记原地址了,如果需要C#版的,可以在博客园搜到吧.我因为自己用,所以转换为了VBNET代码,而且也放置了很久,今天无意间翻出来,就分享给大家吧. 首先,先下载 纯真数据库 ...

  7. switch...case... 语句中的类型转换

    switch语句对case表达式的结果类型有如下要求: 要求case表达式的结果能转换为switch表示式结果的类型 并且如果switch或case表达式的是无类型的常量时,会被自动转换为此种常量的默 ...

  8. 【sping揭秘】12、SpringAOP的实现机制

    SpringAOP的实现机制 设计模式代理模式 参考我之前的代理模式 http://www.cnblogs.com/cutter-point/p/5226642.html 这里写个简单的案例 pack ...

  9. Node.js中的模块接口module.exports浅析

    在写node.js代码时,我们经常需要自己写模块(module).同时还需要在模块最后写好模块接口,声明这个模块对外暴露什么内容.实际上,node.js的模块接口有多种不同写法.这里作者对此做了个简单 ...

  10. 12-02 java String类

    String构造方法 package cn.itcast_01; /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值&q ...