随笔分类 -  Refactoring

摘要:刚才Insus.NET有尝试改一段代码,是让用户能动态变更网页背景图片的小功能。当Insus.NET去执行铵钮Click事件时,它却出现标题的错误。代码是这样的:此代码,原本是没有什么问题的,但现在添加了#6行代码,即是一个铵钮。当执行click事件,它就出现异常了。 Click事件代码是这样的:怎样解决呢?最终在网上找到一个方法:http://leedumond.com/blog/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blocks/大约如下(英文):Insus.NET所理解的, 阅读全文
posted @ 2013-06-24 17:26 Insus.NET 阅读(746) 评论(0) 推荐(1) 编辑
摘要:有看到一网友在论坛上问问题,Insus.NET尝试了一下,下面提供Insus.NET所理解的基础之上的解决方案,仅供参考,原问题如下:在解决之前,先准备一些数据吧。端午节快到了,公司分福利,希望你们公司也有。数据集是一个Hashtable:private Hashtable GetData() { Hashtable ht = new Hashtable(); ht.Add(1, "粽子"); ht.Add(2, "苹果"); ht.Add(3, "雪梨"); ht.Add(4, "荔技"); ht.Ad... 阅读全文
posted @ 2013-06-10 17:44 Insus.NET 阅读(754) 评论(0) 推荐(1) 编辑
摘要:最近有看到博客园的文章,Insus.NET觉得有必要重构它们,因为有看到这两段代码有太多代码的冗余。分享于此,第一段动画是重构DropDownList下拉菜单:第二段动画,是重构获取数据源:由于对只程序大略改了一下,没有运行,因此只作为方法提供参考。实际环境与细节也许会有需要调节的地方。 阅读全文
posted @ 2013-06-03 17:04 Insus.NET 阅读(973) 评论(1) 推荐(2) 编辑
摘要:刚才有网友于Skype问及Insus.NET发布的一篇博文:http://www.cnblogs.com/insus/archive/2013/05/06/3062792.html他希望是让CheckBox或是CheckBoxList控件选择之后,变为只读,而不是使用Enabled属性,因为使用这个属性,颜色变为灰色,不好看。需是希望如TextBox控件设轩ReadOnly= true之后,不能更改,颜色没有变化。大家应该知道,不管是CheckBox控件,还是CheckBoxList控件,都没有Readonly这个属性。为了让这两个控件有只读功能,那先要知道只读,是什么意思,只读就是只能读取, 阅读全文
posted @ 2013-05-07 00:00 Insus.NET 阅读(1819) 评论(2) 推荐(2) 编辑
摘要:有网友在论坛问及怎样隐藏或显示GridView控件的列。下面是Insus.NET实作方法,可供参考。GridView资料,来自http://www.cnblogs.com/insus/archive/2013/05/01/3052604.html首先来看看实现后的结果:Insus.NET把GridView第一列设置好不能隐藏,其余2至4列的索引为1至3。在GridView控件上方,放一个DropDownList和两件铵钮:在.aspx.cs上两个铵钮的Click事件:写得不好,代码有冗余,因此改为:Ok, Insus.NET在接下来的演示中,使用另外一种方法来实现,让你能有更多的参考,首先想办 阅读全文
posted @ 2013-05-01 03:30 Insus.NET 阅读(4151) 评论(3) 推荐(5) 编辑
摘要:怎么嵌套,我的数据库中inputs字段是一个带空格的字符串我想用gridview读出来,把info字符串变成可选的几个复选框,因为我还想选择这些复选框---------------------------------------------------------------------------... 阅读全文
posted @ 2013-04-23 10:33 Insus.NET 阅读(3878) 评论(2) 推荐(2) 编辑
摘要:看过前一篇博文http://www.cnblogs.com/insus/archive/2013/04/21/3029483.html的网友,都大约知道,重构asp.net程序过程,使用了继承的方法。说实在的,Insus.NET不太喜欢在程序中使用继承。因为继承在应用,由于本身的原因,很多问题无法解决,或是运行自如。就如上一篇中,每个网页还是有很多相同的代码,无法拿掉。接下来,Insus.NET想使用接口方式重新对上一篇的原程序重新重构一次,望网友又能从中学习到其中一些开发知识。仔细看看App_Code目录下的Unitcode1 ~ UnitCode4个类别,均有相似之处。Insus.NET在 阅读全文
posted @ 2013-04-21 14:07 Insus.NET 阅读(3061) 评论(3) 推荐(4) 编辑
摘要:原程序,可以从下面地址下载:http://download.cnblogs.com/insus/ASPDOTNET/Ref_Org.rar数据库SQL Server 2008 R2,数据名为[Demo],它有四张表[UnitCode1], [UnitCode2], [UnitCode3], [UnitCode4],每个表有几个字段[Unit1~4],[Description],[CreateBy],[CreateDate],[UpdateBy],[UpdateDate],此四个表的主键分别为[Unit1],[Unit2],[Unit3]和[Unit4],其余字段名称四张表都一样。数据库还有各个 阅读全文
posted @ 2013-04-21 09:14 Insus.NET 阅读(2730) 评论(3) 推荐(5) 编辑
摘要:今天想做些练习,做什么呢?还是练习一下动态变更样式吧。此博文在应用用户控件,接口,事件等知识,可以让你学习到编程的思想,如果是你来写,你是从哪一步开始,或是有另外种写法,都可达到相同的目标,绝招同途异路。准备三种样式,在站点中创建一个目录"StyleSheet"用来存储样式文件,样式文件名分别为StyleSheet.css,SS_css1.css和SS_css2.css。StyleSheet.cssbody{ }.textbox { border:solid 1px #000;}SS_css1.cssbody{ }.textbox { border:s... 阅读全文
posted @ 2013-04-17 22:42 Insus.NET 阅读(2962) 评论(6) 推荐(6) 编辑
摘要:今天审核自己以前写的程式,发现下面面这段代码,写得非常不理想,if层次太多,而且else也多。看过《重构》的人,都会认为那是有着很浓的坏味道。上面代码,它的意思是文本框的值变化而作出另一文本框TextBoxBankName显示。如果文本框的值不为空,去搜索数据记录,如果有记录,把BankName显示于TextBoxBankName内。其它一切条件,TextBoxBankName均为空。上面的代码是没有问题,是能正常运行,但它有很多坏味道,if与else层资多,现Insus.NET把它重构,让其更简洁明了。重构过之后,它的程式,先给TextBoxBankName赋值为string.Empty,第 阅读全文
posted @ 2013-04-09 20:06 Insus.NET 阅读(1204) 评论(4) 推荐(2) 编辑
摘要:早上有分享《Repeater控件动态变更列(Header,Item和Foot)信息》 ,是动态变更一些列的内容。虽然它算不上是完全动态化,但它已经达到初期想要的效果。如果你稍有仔细,也能轻易把它弄出来。现另开一篇,Insus.NET不是重新另外写,而是想重构cs的代码,因为前一篇的代码虽然简单,但代码冗余过多。重构开始:首先把这五个变量删除,因为在重构过程中,已经不需要这五个变量了。//宣告5个变量,将用来存储那5个月份每个部分的数量decimal c1, c2, c3, c4, c5;接下来需要改动的是宣告一个常量,很多地方使用到它:const int dynamicColumns = 5; 阅读全文
posted @ 2013-03-22 16:52 Insus.NET 阅读(2572) 评论(0) 推荐(1) 编辑
摘要:有在论坛看见一帖,《C#用什么方法可以减少或不使用switch》Insus.NET的解决方法,是使用工厂方法来处理,可以创建一个工厂接口,然后每个方法设计为一个工厂类,并实现工厂接口。工厂接口:IGetFactoryusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for IGetFactory/// </summary>namespace Insus.NET{ public inter 阅读全文
posted @ 2013-03-04 13:56 Insus.NET 阅读(2239) 评论(5) 推荐(1) 编辑
摘要:“烹”就是煮的意思,“饪”是指熟的意思,狭义地说,烹饪是对食物原料进行热加工,将生的食物原料加工成熟食品;广义地说烹饪是指对食物原料进行合理选择调配,加工治净,加热调味,使之成为色、香、味、形、质、养兼美的安全无害的、利于吸收、益人健康、强人体质的饭食菜品包括调味熟食,也包括调制生食。因此,我们产生... 阅读全文
posted @ 2013-02-28 23:10 Insus.NET 阅读(2018) 评论(7) 推荐(4) 编辑
摘要:今天有做了几个asp.net结合Javascript的教程文章。现回顾头来看看那些Javascript脚本,有写得不太理想,过于复杂。现Insus.NET抽取出来,重构它们。第一篇是http://www.cnblogs.com/insus/archive/2013/01/20/2868532.html原来的Javascript脚本:function SelectedAll(cb) { cb.checked = cb.checked ? false : true; var gv = document.getElementById('<%=GridVie... 阅读全文
posted @ 2013-01-20 22:09 Insus.NET 阅读(551) 评论(1) 推荐(1) 编辑
摘要:此段时间写的程序,一些功能均被朋友推翻,由静态的改为动态的。就如下面这个导航条,是参考下面这个来实现的:http://www.cnblogs.com/insus/archive/2011/08/18/2144041.html原本Insus.NET已经写好:代码如下:View Code <style type="text/css"> .fsoverstyle { border-color: #3599ff; } .divoverstyle { background-color: #3399ff; color: #fff; } ... 阅读全文
posted @ 2013-01-12 19:56 Insus.NET 阅读(517) 评论(0) 推荐(1) 编辑
摘要:相信很多网友看过Insus.NET的另一篇博文 非使用FindControl方法找到深层嵌套的控件这一篇博文是使用迭代递归获取到目标控件。Insus.NET觉得方法不够理想,既然在网页使用了接口Interface,那就不必再使用递归来获取了,还是使用接口。由于ASPX网页有拉放了ASCX用户控件,因此ASPX再实作这个接口IGetable,返回用户控件。而在click事件时,就可以把ASPX转为接口找到这个用户控件了。在click事件中,就可以使用下面两句替代递归方法: 阅读全文
posted @ 2012-10-07 09:53 Insus.NET 阅读(833) 评论(0) 推荐(1) 编辑
摘要:还有另外一段代码需要重构,原代码:publicstringfile;//显示生成完成的swf文件protectedvoidButton1_Click(objectsender,EventArgse){stringUploadFilePath=Server.MapPath(this.HiddenField1.Value);//保存上传的PDF或者其他可以打印的文件(DOC,DOCX等)/UploadFile/系统分析师通过的经验.docstringNewUploadFilePath=string.Empty;//转换WPS文件路径stringext=Path.GetExtension(Uplo. 阅读全文
posted @ 2012-09-24 23:14 Insus.NET 阅读(664) 评论(1) 推荐(1) 编辑
摘要:一网友需要对所写的代码进行重构,原代码如下:///<summary>///检查上传文件类型///</summary>///<paramname="type">文件类型</param>///<returns></returns>publicstringstrType(stringtype){type=type.ToLower();type=type.Substring(type.LastIndexOf("."));if((".swf,.flv,.doc,.docx,.jpg, 阅读全文
posted @ 2012-09-24 22:07 Insus.NET 阅读(630) 评论(2) 推荐(1) 编辑
摘要:Insus.NET在前段时间,曾分享过一篇文章的上一篇和下一篇导航是使用了用户控件实现,并拉入文章显示的页面。这样子,显示文章最基本需要去读取三次数据库获取数据,一次是获取文章信息,另两次是在用户控件被使用,是获取前一篇和下一篇的标题和ID。为了改善这个性能的问题,故产生此篇:去除用户控件,直接在读取文章时,把上一篇的ID与标题与下一篇的ID与标题一起获取。这样一次获取,节能60%。可以参考获取文章的存储过程:usp_Article_GetByPrimaryKey SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--====================== 阅读全文
posted @ 2012-03-23 23:54 Insus.NET 阅读(813) 评论(3) 推荐(1) 编辑
摘要:近时间的开发专案中,再次对ASP.NET的编辑界面进行简化。从这里可以看到以前的两个版本简化:ASP.NET简化编辑界面 和 ASP.NET简化编辑界面 V2 首先看看本次效果,本效果是在Microsoft Visual Studio 11 Beta 和 Microsoft SQL Server 2012 环境之下实现:编辑工具条写成为一个用户控件(UserControl):View Code <%@ControlLanguage="C#"AutoEventWireup="true"CodeFile="Operation.ascx.cs& 阅读全文
posted @ 2012-03-23 14:55 Insus.NET 阅读(1222) 评论(1) 推荐(2) 编辑