随笔分类 - interface

摘要:类只能继承一个类,不能继承多个类,但可以继承多个接口Interface。 类是对象的抽象,抽象类是类的抽象,而接口是行为的抽象。 下面Insus.NET创建2个接口: 接口是统一行为,抽象是从现在有代码中,把上同代码抽取出来的一个抽象方法,而接口却是相反。不清楚有什么子类存在,行为具体实现也不确定。 阅读全文
posted @ 2017-12-18 15:40 Insus.NET 阅读 (1052) | 评论 (3) 编辑
摘要:策略模式,即规则在变化之中,结果终归为一。公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算。这个费的规则是不尽相同。 不管策略的规则怎样,终归需要计算出一个结果 工资:可以定义一个接口: interface IStrategy { double Cost(double b 阅读全文
posted @ 2017-12-15 13:21 Insus.NET 阅读 (194) | 评论 (0) 编辑
摘要:本例演示在母版页中的铵钮事件去获取某些子页的内容。在母版本中,有一个铵钮事件。当浏览某些子页时,用户点一点母版页的铵钮,能去获取当前页的内容。 子页很多,但我们并不是每一个子页的内容均要去获取,而且每个子页的内容不一样。因此你需要让父页的事件知道,哪些子页是需要获取的。说白了,这就是平时所说的接口。 阅读全文
posted @ 2017-08-07 09:02 Insus.NET 阅读 (606) | 评论 (1) 编辑
摘要:前一段时间,Insus.NET有分享一篇《激活当前视图菜单高亮呈现》http://www.cnblogs.com/insus/p/5287093.html 这篇只是同一控制器的菜单。今天分享一篇,是随不同的控制器,呈现一个网站菜单导向。找到一个网站:http://www.engtek.com/ser 阅读全文
posted @ 2016-04-01 10:02 Insus.NET 阅读 (564) | 评论 (0) 编辑
摘要:“7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成为Visual Studio最新DNA。在智能移动端App开发,支持无论是面向何种智能设备,无论是支... 阅读全文
posted @ 2015-07-24 09:15 Insus.NET 阅读 (2594) | 评论 (5) 编辑
摘要:在ASP.NET开发中,也许我们需要在一个共同的字段域,可以添加,搜索或是做更新。另外的铵钮事件也是独立分开。事件所处理结果不相同。这样在一个ASPX网页中需要协调与处它们之间的关系与结果。如网上也有网友问及相似问题:Insus.NET把这个作为一个小案例,简单做个演示,供大家参考。先准备数据库:S... 阅读全文
posted @ 2015-06-27 11:49 Insus.NET 阅读 (484) | 评论 (0) 编辑
摘要:想foreach一个枚举,发觉它特别复杂,因此先把枚举转换为IEnumerable接口之后,简单多了。下面是枚举(enum)转换为IEnumerable接口方法:使用:修改这篇《程序一旦发觉写得不理想,那就得重构它》http://www.cnblogs.com/insus/p/4180186.htm... 阅读全文
posted @ 2014-12-27 10:04 Insus.NET 阅读 (598) | 评论 (0) 编辑
摘要:前面有做练习《创建一个带模版的用户控件》http://www.cnblogs.com/insus/p/4161544.html。过于简化。通常使用数据控件Repeater会有网页写好Header,Item,AlternatingItem和Footer。如果需要动态产生列时,我们需要在后台写好模板。再... 阅读全文
posted @ 2014-12-15 14:12 Insus.NET 阅读 (423) | 评论 (3) 编辑
摘要:今天学习与练习,做一个用户控件,让其带模版的。关键是两个接口ITemplate和INamingContainer,有关此两个接口技术诠释可以查MSDN官网。创建一个控件,它继承Control和INamingContainer接口。创建用户控件UcB.ascx,拉一个控件容器Placeholder控件... 阅读全文
posted @ 2014-12-13 16:33 Insus.NET 阅读 (576) | 评论 (1) 编辑
摘要:今天学习另一个设计模式,适配器(Adapter)模式,这是一个共同方向,但有特殊要求,就应用到此设计模式。写到这里,想起很久以前,有写过一篇《ASP.NET的适配器设计模式(Adapter)》http://www.cnblogs.com/insus/archive/2013/02/04/289142... 阅读全文
posted @ 2014-12-11 14:28 Insus.NET 阅读 (552) | 评论 (0) 编辑
摘要:有网友问及《克隆复制可使用原型( Prototype)设计模式》http://www.cnblogs.com/insus/p/4154495.html这篇,不管是动态添加,还是克隆所得到的数据行,我怎样才能获取用户填写的值?是的,在那个演示中,Insus.NET只是演示了一个设计模式,原型(prot... 阅读全文
posted @ 2014-12-10 15:27 Insus.NET 阅读 (787) | 评论 (1) 编辑
摘要:今天有学习设计模式的原型(Prototype)《设计模式--原型(Prototype)模式》http://www.cnblogs.com/insus/p/4152773.html。为了加强了解与认识,现再做一个练习。创建一个原型接口:创建一个用户控件,并实现接口:现在网页中有一个按钮,用户点一点这个... 阅读全文
posted @ 2014-12-09 23:53 Insus.NET 阅读 (423) | 评论 (2) 编辑
摘要:时隔很长一段时,现在又重温设计模式,上个星期学习《设计模式--代理(Proxy)模式》http://www.cnblogs.com/insus/p/4128814.html。温故而知新,这次学习另一个设计模式,中介者(Mediator)模式,学习之前,先从下面的问题开始。在前一段时间,Insus.N... 阅读全文
posted @ 2014-12-01 10:38 Insus.NET 阅读 (1693) | 评论 (5) 编辑
摘要:在公司,经常性听到采购部的人说采购某样东材料,采购不了,需要通过代理商才可以。以前Insus.NET也做有一个练习《找人办事,代理设计模式(Proxy)》http://www.cnblogs.com/insus/archive/2013/02/27/2935081.html。理解起来跟公司的采购员找... 阅读全文
posted @ 2014-11-28 16:31 Insus.NET 阅读 (719) | 评论 (0) 编辑
摘要:Insus.NET在去年有写过一篇《软件研发公司,外观设计模式(Facade)》http://www.cnblogs.com/insus/archive/2013/02/27/2936061.html例中写得过于简单与抽象。没有实质内容似的。这次想再写一个。希望能再次加强。为子系统中的一组接口提供一... 阅读全文
posted @ 2014-11-27 15:55 Insus.NET 阅读 (1582) | 评论 (2) 编辑
摘要:在前一篇中《怎样实现Web控件文本框Reset的功能》http://www.cnblogs.com/insus/p/4120889.htmlInsus.NET只实现了文本框的功能。单个或是多个,有默认值与无值。只要用户点击重置(Reset)时,我们就要以对Web控件进行重置。参考博文,其实你完全可以... 阅读全文
posted @ 2014-11-26 17:03 Insus.NET 阅读 (637) | 评论 (0) 编辑
摘要:在ASP.NET开发过程序,在数据插入之后,文本框TextBox控件需要Reset。如果只有一两个文件框也许没有什么问题,如果网页上有很多文本框,你就会有点问题了。再加上某一情形,一些文本框是有默认值,还不能做循环来实现。如今天在论坛上看到一个网友的写法:protected void Button2... 阅读全文
posted @ 2014-11-25 15:04 Insus.NET 阅读 (828) | 评论 (3) 编辑
摘要:有网友来问题,“想通过后台代码给gridview绑定数据,然后在最后一列添加Button,点击按钮后获得所在行的某个数据, 在网上找到了动态生成按钮的程序,但是不知道怎么给这个按钮添加一个Click事件” :网友也许是看了Insus.NET这篇《动态为GridView控件创建列》http://www... 阅读全文
posted @ 2014-11-22 09:33 Insus.NET 阅读 (621) | 评论 (2) 编辑
摘要:本篇从案例开始,为了更好理解接口以及C#的知识,本篇抛开客户端jQuery或是Javascript知识,也就是说ASP.NET与C#一起讨论。进入之前,你可以先细读msdn文章《Cross-Page Posting in ASP.NET Web Pages》http://msdn.microsoft... 阅读全文
posted @ 2014-11-21 14:22 Insus.NET 阅读 (1473) | 评论 (7) 编辑
摘要:开发asp.net时,很多时间,先是在网页中执行搜索,然后再对结果再二次操作其它功能。下面这个例子,先是在网页中,用户点击铵钮后,得到相关数据,然后对数据进行更新。由于得到的结果是一个数据集,显示这些数据集,我们可以使用GridView,DataList或是Repeater数据控件来显示。创建一个逻... 阅读全文
posted @ 2014-10-28 11:16 Insus.NET 阅读 (320) | 评论 (0) 编辑
摘要:很久之前,Insus.NET使用ASP.NET实现一个功能,非javascript。《我的菜单在母版页,如何更改菜单点击后的效果》http://www.cnblogs.com/insus/archive/2012/09/25/2700939.html有点不足,传入参数的链接不太好判断。其实也不难,但... 阅读全文
posted @ 2014-09-10 16:56 Insus.NET 阅读 (745) | 评论 (0) 编辑
摘要:继续上一篇《ASP.NET开发,从二层至三层,至面向对象 (2)》http://www.cnblogs.com/insus/p/3825805.html。我们学会了怎样创建对象,把BizBase类从页面级分离,解耦合度。亲的更亲,疏的更疏。上面使用的是Access数据,将达不到扩展与升级的要求。程序... 阅读全文
posted @ 2014-07-08 17:24 Insus.NET 阅读 (2167) | 评论 (7) 编辑
摘要:为了安全设计,一般情况之下,改用为接口(interface)。在网页中实现这个接口:用户控件:当然,把用户控件ascx拉至网页之后,在用户控件的linkbutton的click事件,就可以呼叫至网页的方法了:演示:原本写完成了,但插入一些另外在网上看到的方法,很多网友就会想到,直接把this.pag... 阅读全文
posted @ 2014-06-06 13:36 Insus.NET 阅读 (653) | 评论 (1) 编辑
摘要:Insus.NET有在上一篇《ASP.NET MVC呼叫WCF Service的方法》http://www.cnblogs.com/insus/p/3720547.html直接呼叫WCF Service的方法,但是那个是方法是一个有返回数据的函数。我们是否可以使用jQuery的Ajax()直接执行W... 阅读全文
posted @ 2014-05-14 16:55 Insus.NET 阅读 (1020) | 评论 (0) 编辑
摘要:本演示,Insus.NET操练asp.net mvc的应用程序,虽然以前有写过:《MVC应用程序使用Wcf Service》http://www.cnblogs.com/insus/p/3602403.html它必竟经控制器来获取数据。但此次使用jQuery的Ajax()方法直接呼叫WCF Serv... 阅读全文
posted @ 2014-05-12 14:58 Insus.NET 阅读 (1403) | 评论 (0) 编辑
摘要:昨天有在开发的软件生产线生产流程,RFID扫描IC卡的数据,当中有用到jQuery获取一般处理程序(ashx)的JSON数据。今有把它写成一个小例子,望需要的网友能参考。在网站中,创建一个一般应用程序ashx:命名空间:using System.Data;using System.Collectio... 阅读全文
posted @ 2014-05-07 11:59 Insus.NET 阅读 (10223) | 评论 (1) 编辑
摘要:axd格式文件,不管是在asp.net还是现在开发asp.net MVC应用程序,都是Insus.NET较喜欢使用的。因为我们可以虚拟一个在应用程序不存在的一个文件。其实这个格式的文件也是Handler,它有实现了IHttpHandler接口。因此你完全可以创建一个axd来替换ashx文件。下面In... 阅读全文
posted @ 2014-04-15 15:45 Insus.NET 阅读 (1384) | 评论 (5) 编辑
摘要:问题来自论坛,有网友这样的要求,在ASHX内呼叫ASPX.cs的一个方法或函数。在一个网站中,也许不止只有一个aspx网页。把aspx.cs内的方法宣告为public,ashx想呼叫时,也不知道是哪一个aspx内的方法。就是某一个aspx.cs有引用了这个ashx,这个ashx也不知道呼叫的方法在当前这个aspx中。为了解决上面的问题,Insus.NET创建一个接口(interface)在站点中,创建一个aspx,名称暂叫A.aspx。在a.aspx没有写任何代码,但在a.aspx.cs内,需要实作刚才写好的接口:现在我们写一个Handler:名称叫B.ashx:试运行看看:下面内容于2014 阅读全文
posted @ 2014-04-10 16:37 Insus.NET 阅读 (4571) | 评论 (27) 编辑
摘要:我们在网站登录或理一个评论时,可以放置一个验证码(Captcha),可以为系统免去那些恶意刷新等功能。今次Insus.NET在asp.net mvc应用程序实现与演示验证码的产生以及应用等 。前天Insus.NET已经实现了随机产生一个字符串《在ASP.NET MVC应用程序中随机获取一个字符串》http://www.cnblogs.com/insus/p/3619224.html,稍后我们就可以使用到此方法,随机产生一个验证字符串。在应用程序的Handlers目录下,创建一个Generic Handler名叫Captcha.ashx, 它有实作了IRequiresSessionState接口 阅读全文
posted @ 2014-03-24 23:45 Insus.NET 阅读 (1953) | 评论 (4) 编辑
摘要:前一篇Insus.NET有演示过MVC应用程序使用Web Service, 此篇Insus.NET想继续演示Service,不过是WCF Service。两者实施起来,多少有些不一样。在Services目录下,创建一个Calculator.svc 服务。创建成功之后,它会生生成一个接口以及一个svc的文件:在Calculator.svc中,它是实作上面的接口,而且均实现了四个方法:WCF Service创建好之后,正常的话,它能浏览:下面是为MVC应用程序添加参考Wcf Service:引用完了,在Web.config会看到如下信息:找到并打开ExerciseController.cs,创建视 阅读全文
posted @ 2014-03-15 20:34 Insus.NET 阅读 (1444) | 评论 (0) 编辑
摘要:先看此篇《MVC程序实现Autocomplete功能》 http://www.cnblogs.com/insus/p/3546255.html它是实现使用jQuery实现文本框输入文字,出现下拉列表,自动完成与选择功能。相信你的开发的MVC应用程序中,不止有唯一一个此AutoComplete功能。如... 阅读全文
posted @ 2014-02-14 16:16 Insus.NET 阅读 (2417) | 评论 (4) 编辑
摘要:对MVC好长一段时间练习,说句实在的话,还有很多是感到陌生,很多是生疏......很多网友也是刚想学习MVC,看到Insus.NET每学习一种方法,一个技巧均写成博文,也很希望能获取到练习的源程序以及数据库。因此Insus.NET把这些练习整理好之后,放在下面的链接中,需要的它的网友,就可以下载了。... 阅读全文
posted @ 2013-10-23 17:13 Insus.NET 阅读 (1426) | 评论 (2) 编辑
摘要:Insus.NET分享一个案例网站程序。程序中95%的功能添加与设置在后台管理平台进行,剩余的5%就是前台网页的自定义设计。程序是使用.NET Framework 4.0 + ASP.NET + MS SQL Server 2008 R2 + VB.NET进行开发。功能与特色:文章编辑器使用:CuteEditor。如果你在运行时,出现license的问题时,如下图:可以从官网上下载,然后覆盖BIN目录下的cuteeditor.lic即可。网站中的页首或是页中的广告,你可以上传Flash,也可以上传图片。因为Insus.NET有开发为两者均可呈现。后台管理平台,诸多功能均可以添加,编辑,删除,然 阅读全文
posted @ 2013-08-30 16:45 Insus.NET 阅读 (7984) | 评论 (3) 编辑
摘要:有一个网友在问:为了子页能访问到MasterPage母版页的控件,使用接口:母版页实作这个接口在子页的铵钮事件:演示一下: 阅读全文
posted @ 2013-08-20 17:03 Insus.NET 阅读 (969) | 评论 (1) 编辑
摘要:有机会看到有网友在论坛上发出问题:在网页上的铵钮执行之后,动态加载的用户控件,如果没有处理好,会在子用户控件的铵钮被执行时抛弃。因此我们需要着重需要处理的关键点。同相子用户控件在动态加载之后,它的状态也需要保持,不然在传值给另一个子用户控件时,也会被抛弃。另一个关键点,就是子用户控件,怎样传值给另一个用户控件。弄清楚技术关键点之后,一切都好办。在网站上,创建一个网页Default.aspx,两个用户控件UcA.ascx和UcB.ascx在Default.aspx:去UcA.aspx去UcB.aspx所有网页与用户控件的html代码均完成。UcB.aspx.cs需要获取一个值,这个值是从哪里来, 阅读全文
posted @ 2013-08-09 16:38 Insus.NET 阅读 (1238) | 评论 (2) 编辑
摘要:HtmlAnchor点击之后保持高亮,就是一个链接,在点击之后,还要保持高亮状态。应用在网站后台管理界面,左边菜单点击之后,菜单保持点击高亮状态。为了实现这个功能,确实花上Insus.NET不少时间。因为a标签似乎只有一个瞬间状态,难于捕足到它。下面是Insus.NET实现的过程。其础部分是使用这个演示作为资料: http://www.cnblogs.com/insus/p/3205293.html。为了控制到点击之后的HtmlAnchor的状态,我们必须知道那一个HtmlAnchor被点击了。从前面的演示中,可以看到每一个HtmlAnchor的href的值是不相同的,可以从这点来判断到操作者 阅读全文
posted @ 2013-07-23 09:19 Insus.NET 阅读 (49556) | 评论 (2) 编辑
摘要:看过这两篇博文的网友,都会知道,考卷在所有选项选择完成之后,再一次交卷,并关闭试卷。http://www.cnblogs.com/insus/p/3193619.htmlhttp://www.cnblogs.com/insus/p/3197194.html如今Insus.NET做实现另外方法,就是每个选项选择时,即时更新至数据库,可以解决不小心关闭网页,重新登录时,可以看到没有提交的考卷,前面做已经保存于数据库中的答案,没有白做。当用户最后交卷时,点“交卷”铵钮,只是做关闭动作。当重新打开关闭的考卷,或是在批改时,应该把考员所选择的选项显示出来。好的,问题清楚了,Insus.NET这次使用Al 阅读全文
posted @ 2013-07-19 18:18 Insus.NET 阅读 (1325) | 评论 (0) 编辑
摘要:Insus.NET一直想把单选项试题实现的想法写成博文。想实现单选项试题,有几个问题需要清楚的:第一是选项内容,由几个选项组成,一个,二个还是三个四个等,选项的内容是A,B,C,还是其它内容,考员作答选择时,是存储Key值,还是存储显示值?因此有设计这些时,能够实现单选选项能有几种形式。第二是单选题,标题内容,以及用一个字段来存储标准答案(本次演示),也可以把答案存放入另外一个单独的表中。第三是,考员的答卷,需要存储,在考试时间之内,可以更改自己的答案。因此此表的字段有 用户ID,试题ID,答案,时间,其实真正的设计,也许需要考虑一个用户可以考几次,选择的题库等等...本次演示,只是实现试题显 阅读全文
posted @ 2013-07-17 23:14 Insus.NET 阅读 (3061) | 评论 (1) 编辑
摘要:Insus.NET写此博文,是对用户控件(ASCX)的属性赋值经验与技巧分享。是这样子的,在做新闻站点时,一般都会有分很多类别。 在站点首页会显示最新,最TOP 或最Hot的新闻或文章,而且是分类别来分的。因此,我们会设计成一个用户控件,用户控件的数据源均是来自Article这个表,只是传入不同的category 的ID值和 Top几条来实现。用户控件.cs大约如下,高亮代码是两个属性,当然你的真实环境也许只有一个,或是更多的属性。 现在来演示网页引用用户控件,并赋值,分几种方法或是重构优化它们。在创建一个网页,也就是说,你的网点上,哪个网页需要引用这个用户控件。用户控件呈现是需要在网页asp 阅读全文
posted @ 2013-06-25 14:32 Insus.NET 阅读 (2388) | 评论 (8) 编辑
摘要:"我建了两个ascx,ascxA,ascxBascxA中放了一个PlaceHold,ascxB中放了一个textBoxascxA在page_load中动态创建了5个ascxB但是页面上什么都没显示"这是来自论坛网友的问题,Insus.NET就以此问题做一个演示例子,方法与技巧分享给大家。在站点上创建一个用户控件ascx B, 拉一个TextBox在这个控件上。创建另一个用户控件ascx A 在这个用户控件上,拉一个Textbox 和一个按钮,是让用户在文本框输入数据,点一点铵钮,这样动态产生ascx B用户控件,呈现于ascx A用户控件的页面上。在站点上,创建一个aspx 阅读全文
posted @ 2013-06-22 10:12 Insus.NET 阅读 (2830) | 评论 (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 阅读 (396) | 评论 (0) 编辑
摘要:本博文,将带你学习使用GridView控件显示站点目录的图片。如果你已经学会怎样做图片缩略图;怎样应用接口来实现统一的属性,方法或函数;怎样动态加载用户控件,等等。就不必往下看了。因为此篇博文就是演练这些方面的内容。在站点上,准备好一些图片,此次Insus.NET准备的是太阳系中几颗星球的图片,稍后就是在GridView控件显示这些图片。对了,现在我们做开发,都是面向对象编程,为了演示好这个例子,Insus.NET决定先创建一个对象,在App_Code目录中,创建一个Insus.NET.SolarSystem类别,大约如下,只有两个属性StarName,Picture,以及一个带参数的构造函数 阅读全文
posted @ 2013-05-16 01:28 Insus.NET 阅读 (5043) | 评论 (11) 编辑
摘要:实现这个功能,方法很多的。你可以使用Javascript来实现,http://www.cnblogs.com/insus/archive/2013/01/14/2859079.html当然你可以不使用Javascript使用JQuery一样可以完成。你还可以使用程序后台实现,http://www.cnblogs.com/insus/archive/2012/09/05/2671729.html你还可以使用asp.net自带的验证控件来判用户是否有对RadioButtonList控件是否有选择:View Code <asp:RadioButtonList ID="RadioBut 阅读全文
posted @ 2013-05-07 22:19 Insus.NET 阅读 (2333) | 评论 (0) 编辑
摘要:想了解此篇,Insus.NET建议网友们先看这篇《http://www.cnblogs.com/insus/archive/2013/04/23/3035447.html》,因为此篇是那篇的基础上进行升级的。说实的,上一篇只是完成了基本的功能,怎样把字符串进行分割,并绑定至GridView的自定义模版上,最后的是处理用户选择的选项处理与存储在数据库中,还是在网页再次加载时,把上次选择的选项显示于checkBoxList控件内。这算不上是动态创建CheckBox。因此,在此次Insus.NET再使用另外完全不一样的方法,来实现这个相同的功能,也算得上重构了。将要显示CheckBox的列,将使用用 阅读全文
posted @ 2013-04-24 01:13 Insus.NET 阅读 (4652) | 评论 (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 阅读 (2622) | 评论 (3) 编辑
摘要:原程序,可以从下面地址下载: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 阅读 (2174) | 评论 (3) 编辑
摘要:今天想做些练习,做什么呢?还是练习一下动态变更样式吧。此博文在应用用户控件,接口,事件等知识,可以让你学习到编程的思想,如果是你来写,你是从哪一步开始,或是有另外种写法,都可达到相同的目标,绝招同途异路。准备三种样式,在站点中创建一个目录"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 阅读 (2510) | 评论 (6) 编辑
摘要:由于程序中,这个DataKeyNames名称是一个动态值,因此在html的GridView不能直接写成这样子asp:GridViewID="GridViewUnitCode"runat="server" DataKeyNames="xxx" ... 也就是说,html中的Gridview不能带DataKeyNames属性,如果写上了,就是写死了。在.cs中,Insus.NET是这样解决的。为GridView动态添加DataKeyNames属性并赋值,有一点需要注意的,就是它应该是在GridView绑定数据前时进行。下面两种顺序是正确的 阅读全文
posted @ 2013-04-14 14:21 Insus.NET 阅读 (648) | 评论 (0) 编辑
摘要:"我有一个站点,这个站点使用了masterpage,还两个用户控件(ascx),是拉至masterpage内的,一个是作为网页首(Header.ascx),另一个作为网页脚(Foot.ascx),现在的问题是怎样控制foot.ascx这个用户控件,一些网页需要显示这个用户控件,一些网页不想显示。“用友在昨晚使用Skype问及Insus.NET,需要寻求解决方案。Insus.NET在第一时间,让网友参考这篇:http://www.cnblogs.com/insus/archive/2012/02/22/2362830.html”你好,我情形跟你提供的参考不一样呀,你例子中的是两个母版页 阅读全文
posted @ 2013-03-20 10:05 Insus.NET 阅读 (750) | 评论 (1) 编辑
摘要:Insus.NET在本次演示中,使用了接口(interface),在网页动态加载用户控件,并使用JQuery为来把网页处理的值传给用户控件。在面向编程中,Insus.NET较喜欢使用接口,认为它能为不同对象之间处理到相同的行为。ISetValableusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for ISetValable/// </summary>namespace Insus. 阅读全文
posted @ 2013-03-14 10:36 Insus.NET 阅读 (747) | 评论 (1) 编辑
摘要:网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。为了传值,写一个接口,返回aspx的TextBox函数:Itransmitableusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI.WebControls;/// <summary>/// Summary descr 阅读全文
posted @ 2013-03-08 17:49 Insus.NET 阅读 (2463) | 评论 (5) 编辑
摘要:"A用户控件有一个textbxB用户控件有若干Checkbox我要在B中选中若干 点击保存然后把checkbox的值赋给A中的Textbox"问题来自论坛。解决此问题,可以首先分析三者的职责,A用户控件,B用户控件以及B用户件的铵钮;如果更细一点来分析,A用户控件里的TextBox控件,此Textbox需要赋值,值从哪里来,它不用知道也无需知道。B用户控件里也有一个CheckBoxList控件,它只有数据,用户选择的值,将给谁,它也不知道,管不了。还有一个B用户控件的铵钮,铵钮将产生Click事件,它只管保存数据,把CheckBoxList选择的值,保存至TextBox。O 阅读全文
posted @ 2013-03-05 10:43 Insus.NET 阅读 (1818) | 评论 (3) 编辑
摘要:有在论坛看见一帖,《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 阅读 (1469) | 评论 (5) 编辑
摘要:在开发asp.net程序时,用户的数据将保存至数据库,程序与数据库之间的数据操作,会涉及到往数据库添加数据,编辑数据,更新数据和删除数据等。本次Insus.NET介绍的是工厂方法,因此我们会从这几个操作入手。介绍工厂方法设计模式,得先从简单工厂设计模式(Simple Factory)开始,简单工厂,有一个操作类,这个类有一个virtual方法,好让其它子类继承与重写:Operationusing System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Su 阅读全文
posted @ 2013-03-03 22:08 Insus.NET 阅读 (1281) | 评论 (2) 编辑
摘要:行为抽象即可写成接口(Interface)。如此http://www.cnblogs.com/insus/archive/2013/02/24/2924190.html链接的例子中的开与关,就可以把它们设计为抽象方法。我们宣告接口时,使用interface来声明,就如宣告类使用class一样。在编程规范中,使用字母"I"开头。接口中的所有签名,如方法,属性,索引器,事件等。不能带修饰符,比如public,private等,不能有任何实现内容,也不能声明虚拟(virtual)的或静态(static)的等。ISwitchableusing System;using System 阅读全文
posted @ 2013-02-27 10:37 Insus.NET 阅读 (528) | 评论 (0) 编辑
摘要:“一个.aspx的页面中,用到了两个用户控件,其中想做的到A控件有一个按钮,点击的时候获取到B控件中的一个textbox的值。 因为在生成的时候名字会改变,用findcontrol的时候名字该如何写呢? 另外像这种问题有几种解决的办法呢?”论坛上看到这个问题http://bbs.csdn.net/topics/390357779,Insus.NET提供自己的解决方法,先看看解决运行的效果:首先创建一个站点,然后创建两个用户控件,一个是UcA,一个是UcB。 在UcB的控件上拉一个TextBox。View Code <%@ Control Language="C#" A 阅读全文
posted @ 2013-01-26 21:32 Insus.NET 阅读 (506) | 评论 (0) 编辑
摘要:今天学习WCF,做了一个练习,最终的效果:在数据库中创建表,插入数据,写好存储过程:View Code SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Catalog]( [Catalog_nbr] [smallint] IDENTITY(1,1) NOT NULL, [CatalogName] [nvarchar](100) NOT NULL, CONSTRAINT [PK_Catalog] PRIMARY KEY CLUSTERED ( [Catalog_nbr] ASC)WITH (PAD... 阅读全文
posted @ 2013-01-19 17:28 Insus.NET 阅读 (485) | 评论 (0) 编辑
摘要:“用户控件中有个label控件,需要根据用户控件被引用后的ID值来未其赋值,请问如何才能在ASCX中得到引用后的用户控件ID”这是来自某论坛的问题,不过标题Insus.NET有所更改。用户控件,将有可能被aspx或是masterPgae所应用。用户控件就是象打工仔,有可能被雇主聘用。每位打工仔都想赚钱,谁会给自己钱,也许不清楚;而雇主聘请人才或是投资,他只管付钱,付给谁也不一定清楚,因此Insus.NET在此创建一个接口,接口中有一个方法,是付钱。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.. 阅读全文
posted @ 2012-11-13 23:42 Insus.NET 阅读 (538) | 评论 (0) 编辑
摘要:相信很多网友看过Insus.NET的另一篇博文 非使用FindControl方法找到深层嵌套的控件这一篇博文是使用迭代递归获取到目标控件。Insus.NET觉得方法不够理想,既然在网页使用了接口Interface,那就不必再使用递归来获取了,还是使用接口。由于ASPX网页有拉放了ASCX用户控件,因此ASPX再实作这个接口IGetable,返回用户控件。而在click事件时,就可以把ASPX转为接口找到这个用户控件了。在click事件中,就可以使用下面两句替代递归方法: 阅读全文
posted @ 2012-10-07 09:53 Insus.NET 阅读 (605) | 评论 (0) 编辑
摘要:首先看下示意图上图中,有七层MasterPage嵌套,最后一层MasterPage有一个ASPX网页,在ASPX网页上有一个ASCX用户控件,在ASCX用户控件有一个TextBox控件。在第一层的MasterPage拉一个Button和一个Label控件。 如今想按一下这个铵钮,去获取TextBox的值。本只是一个实例,实际开发时,控件嵌套层数是一个未知数,最后一个也未必是TextBox。下面是Insus.NET解决方法。由于层次是未知数,所以Insus.NET写一个迭代方法:IterationFindControl protectedControlIterationFindControl(C 阅读全文
posted @ 2012-09-27 12:02 Insus.NET 阅读 (939) | 评论 (0) 编辑
摘要:很多情况之下,使用用户控件ASCX时,是因为不止一个网页有相同的一个功能。因此让把这部分抽出来,放置于一个用户控件。然后在网页需要用户控件,拉进去即可,但是Insus.NET不单单只是呈现,而是想做更多的交互,也就是说用户控件与网页之间的交互。为了更好分享这个交互功能,Insus.NET现列举一个例子。只要明白其中的原理,很多相似功能,你可以应用得到。上面演示中,用户控件动态产生了一个DropDownList Web控件,在下拉式菜单选项变化时,去更新网页的数据。Insus.NET把用户控件与网页当作对象,不同对象之间作相同的动作,非接口来实现不可。ISetable usingSystem;u 阅读全文
posted @ 2012-09-26 11:33 Insus.NET 阅读 (908) | 评论 (4) 编辑
摘要:网友问:“我的菜单在母版页中,用li做的,选中的菜单有一个Selected类,设置选中后的背景。问题出来了,我其他所有页面都是基于这个母版页,点击菜单转到其他页面,怎么修改这个被点击的菜单的背景呢?只有选中的菜单才有Selected类。那就是怎么去除之前选择的菜单Selected类, 而把被点击的菜单加上Selected类???????????”Insus.NET模拟演示:所有参数在子页面设置与传给MasterPage。本例子中,在masterpage拉了四个LinkButton. 在每个子页怎样去找到Masterpage相对应的LinkButton呢?用Findcontrol(),用for. 阅读全文
posted @ 2012-09-25 01:40 Insus.NET 阅读 (10769) | 评论 (10) 编辑
摘要:这题与《列出本月所有星期天的日期》有点相似,稍微变动一下,即可完成。publicIEnumerable<DateTime>AllSundaysInYear(intyear){System.Globalization.CultureInfoci=newSystem.Globalization.CultureInfo("en-US");for(intm=1;m<=12;m++){intdays=ci.Calendar.GetDaysInMonth(year,m);for(inti=1;i<=days;i++){if(newDateTime(year,m, 阅读全文
posted @ 2012-06-07 23:22 Insus.NET 阅读 (819) | 评论 (0) 编辑
摘要:本作业题是列出本月所有星期天的日期。publicIEnumerable<DateTime>AllSundaysInMonth(intyear,intmonth){System.Globalization.CultureInfoci=newSystem.Globalization.CultureInfo("en-US");intdays=ci.Calendar.GetDaysInMonth(year,month);for(inti=1;i<=days;i++){if(newDateTime(year,month,i).DayOfWeek==DayOfWeek 阅读全文
posted @ 2012-06-07 23:14 Insus.NET 阅读 (517) | 评论 (0) 编辑
摘要:作业问题与要求是列出本月偶数的日期。如果会做 《显示本月每一天日期》,此题也许不是问题了。publicIEnumerable<DateTime>AllEvenDatesInMonth(intyear,intmonth){intdays=DateTime.DaysInMonth(year,month);for(inti=1;i<=days;i++){if(i%2==0)yieldreturnnewDateTime(year,month,i);}} 阅读全文
posted @ 2012-06-07 22:41 Insus.NET 阅读 (456) | 评论 (0) 编辑
摘要:老师布置的作业,一直没有完成。现在有一些时间,继续完成它们。其中一题是列出当前月的每一天。publicIEnumerable<DateTime>AllDatesInMonth(intyear,intmonth){intdays=DateTime.DaysInMonth(year,month);for(inti=1;i<=days;i++){yieldreturnnewDateTime(year,month,i);}} 阅读全文
posted @ 2012-06-07 22:33 Insus.NET 阅读 (418) | 评论 (0) 编辑
摘要:本演示是让你知道如何多个值绑定至ListBox显示为选中。ListBox在default情况之下,SelectionMode为Single,因此为了多选,而需要设置此属性为Multiple。在实现之前,可以先看到Insus.NET所实现最终效果,gif动画,无声音:.aspx:<asp:TextBoxID="TextBox1"runat="server"Width="300"></asp:TextBox><br/><asp:ButtonID="Button1"runat=& 阅读全文
posted @ 2012-04-26 22:21 Insus.NET 阅读 (1142) | 评论 (0) 编辑
摘要:问题来自论坛http://topic.csdn.net/u/20120415/17/3f264265-b25c-4db8-a192-520e8a60e4c1.html?85396问题分析,aspx页面的控件需要控制显示与否,就如同象是一个小电灯,为了不让它通电之后常亮。因此需要一个开关才能控制到它。什么样的开关它管不了那么多,只要能控制开与关功能即可。用户控件的Button,它可以实现开关功能。它可以控制电器的电路开与关。接下来,两个电器是不同的对象,怎样让它们连接在一起。在程序中,可以使用Interface(接口)来实现。我们可以写一个叫开关接口ISwitchable。ISwitchable 阅读全文
posted @ 2012-04-16 14:51 Insus.NET 阅读 (1033) | 评论 (1) 编辑
摘要:本篇教你动态添加用户控件。为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl。View Code usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;///<summary>///SummarydescriptionforIGetUCable///</summary>namespaceInsus.NET{publicinterfaceIGetU 阅读全文
posted @ 2012-04-16 00:39 Insus.NET 阅读 (709) | 评论 (2) 编辑
摘要:参考:http://topic.csdn.net/u/20120309/13/96d8c42f-6bcc-4acf-89e7-8015cac777ba.html?37024解决这个问题,首先要明白一件事情,masterpage只是一个容器,它将要装载很多网页,Div是放在哪一个网页内,要设法让masterpage知道。比如P1.aspx页内有Div id为Div1, P2.aspx也有一个Div id 为Div1。masterpage不知道你要显示那页的Div1. Div只想要显示与否,由谁来控制它不管,可以由page或是masterpage都有可能去控制它。因此,你可以写一个接口,它有一个方 阅读全文
posted @ 2012-03-09 16:51 Insus.NET 阅读 (961) | 评论 (1) 编辑
摘要:问题来自http://topic.csdn.net/u/20120226/15/09b1fd42-b587-483b-b4df-9cba2ef3d0ad.html也可参考下图:Insus.NET提供如下解决方法,仅供参考:写一个接口,usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///SummarydescriptionforISetable///</summary>namespaceInsus.NET{publicinterfaceISe 阅读全文
posted @ 2012-02-26 17:08 Insus.NET 阅读 (320) | 评论 (2) 编辑
摘要:环境是这样的,一个MasterPage 如MP2(子)嵌套另一个MasterPage 如MP1(父)。一个UserControl 如MyUc,这个UserControl有一个Web控件,如TextBox1它初始状态为Visible="false" ,它是拉在MP1的MasterPage上。 现在是要在MP2的MasterPage的page_Load控制UserControl内的TextBox显示与否。这样的做法,就是所有使用MP1 MasterPage的网页对用户控件的TextBox是不可见,而使用MP2 MasterPage的网页对用户控件的TextBox是可见。Insu 阅读全文
posted @ 2012-02-22 13:14 Insus.NET 阅读 (687) | 评论 (1) 编辑
摘要:在论坛内看到一个问题,问“如何判断一个String字符是否在string[]数组里”。问题URL:http://topic.csdn.net/u/20111216/11/b33273ef-b611-4906-890a-c3d42f4e7961.html当循环去判断,一定是没有问题的啦。另外,从.NET Framework的Library中可以看到,Array有实作IList接口,所以Insus.NET想使用IList.Contains()方法来判断。需要使用命名空间: using System.Collections;。View Code stringa="A";strin 阅读全文
posted @ 2011-12-16 13:47 Insus.NET 阅读 (10278) | 评论 (10) 编辑
摘要:在开发asp.net过程中,Insus.NET较喜欢写UserControl(用户控件),因为它就是一个灵活的对象。可以在网页随意变换与控制。此次Insus.NET想说的问题,可看如下说明,就比如前一篇《观察者模式与用户控件之间的互动 》,其中UserD与UserC两个用户控件可以交互。这两个用户控件都写了event(事件),delegate(委托)。这部分可以重构一下。把他们写成一个interface(接口),也就是写成一个事件接口。此篇另写例子,让我们学会如何在asp.net开发过程中写事件接口与应用,非以前篇作重构与修改。ITransmitable usingSystem;usingSy 阅读全文
posted @ 2011-12-12 09:20 Insus.NET 阅读 (1685) | 评论 (2) 编辑
摘要:什么叫观察者设计模式(Observer Pattern),在此不作过多解释。Insus.NET以一个很简单的例子来演示给大家看看。一个是发布者,而发布者只关心会有谁订阅:IPublishusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///SummarydescriptionforIPublish///</summary>namespaceInsus.NET{//发布者接口publicinterfaceIPublish{//只关心会有谁订阅v 阅读全文
posted @ 2011-12-10 13:28 Insus.NET 阅读 (2028) | 评论 (3) 编辑
摘要:儿子: 爸爸,今天早餐吃什么?是炒粉还是煮面?爸爸: 你想吃哪种呢?儿子: 我想吃煮面。爸爸: 煮面也有很多种,你想吃鸡蛋煮面,虾煮面,肉片煮面......儿子: 我选虾煮面。从开发角度来说,不管是炒还是煮,它是只是一个动作或方法。因此可以定义成为两个接口:ICookableusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;//////SummarydescriptionforICookable///namespaceInsus.NET{publicinterfaceICookable{vo 阅读全文
posted @ 2011-12-07 08:59 Insus.NET 阅读 (489) | 评论 (3) 编辑
摘要:问题参考http://topic.csdn.net/u/20111129/09/887007d1-566c-4205-85bd-063ff3b50f5d.html?seed=632864658&r=76705307#r_76705307,来自论坛网友问及:解决,避免使用FindControl方法,改用接口interface.IGetTextBoxValueable usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///Summarydescrip 阅读全文
posted @ 2011-11-29 11:11 Insus.NET 阅读 (509) | 评论 (2) 编辑
摘要:首先看看效果:文本框与搜索铵钮放在母版页(MasterPage),每个将搜索结果显示在aspx网页上,如Label,或者是搜索网页的上的内容,如果DropDownList或是RadioButtonList等。当然方法明白了,把处理的结果显示在GridView,DataList或是Repeater等数据控件上是没有问题。关键的地方,Insus.NET使用了一个interface接口,因为不同对象处理不同的结果。ISearchable usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///&l 阅读全文
posted @ 2011-11-25 14:31 Insus.NET 阅读 (1901) | 评论 (3) 编辑
摘要:昨晚有位网友来电求助,说有一个DropDownList,由于选项过多,想在DropDownList前放一个TextBox,让用户输入文本,DropDownList会选中相应的选项。如果用户选择DropDownList选择一个选择,会把它的值显示于这个TextBox之上。Insus.NET做了两个演示。也供大家参考,Demo1,普通方法实现,执行时会有点异常,还待去解决:Demo1.aspx:View Code <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Demo1.aspx.cs 阅读全文
posted @ 2011-11-11 11:30 Insus.NET 阅读 (1088) | 评论 (3) 编辑
摘要:如何在程序中呼叫你写好的Class(类)。为了实现这些功能,下面做了一个小小的例子。第一步,我们得把呼叫的类写好。首先写一个interface(接口),这个接口有一个方法Call():ICallable usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///SummarydescriptionforICallable///</summary>namespaceInsus.NET{publicinterfaceICallable{voidCal 阅读全文
posted @ 2011-11-09 13:53 Insus.NET 阅读 (687) | 评论 (0) 编辑
摘要:先看演示:Insus.NET在MasterPage放置了一个DropDownList和一个Button控件,然后在Default.aspx放置一个TextBox。从上面的动画中可以看到,在TextBox输入文字,它会动态添加至MasterPage的DropDownList控件中。实现过程,首先写一个接口:IGetable usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///SummarydescriptionforIGetable///</sum 阅读全文
posted @ 2011-11-08 15:56 Insus.NET 阅读 (1569) | 评论 (9) 编辑
摘要:在开发Asp.net时,我们会经常有应用MasterPage或是WebUserControl。这样会遇上一个问题,需要在aspx去找MasterPage或是WebUserControl内的对象,或是从aspx传值给它们。比如一个WebUserControl被aspx调用之后,它产生的ID会随着aspx的环境而变化,而不是一成不变的,因为假如使用FindControl()寻找的话,当ID发生变化,在aspx 运行时会发生异常。下面就以一个WebUserControl来演示。这个WebUserControl会放一个CheckBoxList控件,当这个WebUserControl拉到aspx页面去时 阅读全文
posted @ 2011-07-04 16:23 Insus.NET 阅读 (780) | 评论 (0) 编辑
摘要:你可以参考这篇:http://www.cnblogs.com/insus/articles/2050790.htmlInsus.NET觉得它写得很不理想。因为不想写得这样复杂,或者有其它ID变化的可能,如:ContentPlaceHolderID="ContentPlaceHolder1" 有可能变为ContentPlaceHolderID="ContentPlaceHolder3",ID="TextBox1"也有可能变为ID="MemberName" 等。在目标页,得需要写判断是否存在,是否为NULL,如果不这样 阅读全文
posted @ 2011-05-19 11:00 Insus.NET 阅读 (1230) | 评论 (2) 编辑
摘要:基本抽象的属性,方法,可以使用接口(Interface)去替换。下面演示中,就是以简单工厂(Simple Factory Pattern) 为例,把抽象类改为接口。文件格式:.wmv;大小:8,716KB;长度:00:06:14。下载地址:http://download.cnblogs.com/insus/CSharpNET/Ref_to_Interface.rar 阅读全文
posted @ 2011-02-15 20:08 Insus.NET 阅读 (472) | 评论 (0) 编辑
摘要:下面这个视频,大家可以看到如何去使用接口(interface)和适配者模式(Adapter)。在各个网页中去控制显示与隐藏相应用控件或是数据等。文件格式:.wmv;大小:9,623KB;长度:00:12:13。 下载地址:http://download.cnblogs.com/insus/ASPDOTNET/InterfaceAndAdapterDemo.zip 阅读全文
posted @ 2009-12-27 10:56 Insus.NET 阅读 (557) | 评论 (1) 编辑
摘要:下面这个视频,将教您怎样在aspx.cs页面中去找到masterpage里的控件,或许您会想到用FindControl去取得,不错,那是一种常用的方法。如果在多层模版(masterPage)嵌套下的控件,用FindControl去取得,也许您会觉得有点复杂。视频中,有用几种方法,其中就用到interface(接口)去实现。文件格式:.wmv;大小:13,636KB;长度:00:17:03。下载地址:http://download.cnblogs.com/insus/ASPDOTNET/FindControl.zip 阅读全文
posted @ 2009-12-26 13:06 Insus.NET 阅读 (521) | 评论 (1) 编辑