博客搬家,顺带来些学生时代乱七八糟写的东东

       前些日,无意发现我还有个新浪博客?打开看了看,原来是大学暑假期间,自学的.Net平台的AJAX几个控件而已。以下文字均是从自己大学的博客 http://blog.sina.com.cn/sonicstyle一篇篇复制黏贴过来的。四年了,毕业了,虽然从事着IT工作,但这些技术在工作中几乎也用不到。费这么大力气黏贴过来,只想对大学学习生活的一种怀念。往后希望在CSDN博客,原创或转载更多的技术经验总结,以供分享。


---------------------------------------------------------------------------------------------------------------------------------------------------

<20080801—20081003>

不得不告别一段时间

    11月份的中级软件设计师资格考试如约而至了,只剩下一个月的复习时间,相当紧迫的。这段时间也无暇研究技术类的书籍,整天看些理论知识。理解概念的确很枯燥,不过做起题目就会很投入。

    就说这么多吧,最近很少感慨,很少突然有什么雅致。

    总之这个BLOG要放手一段时间,考试完之后再努力更新,学习...

突然有些疲惫,但我不能停下脚步

回学校以来,因为寝室网络问题,一直没有更新Blog。直到昨晚办好了上网,继续我的学习进度。

开学这两周以来,有些忽放松了对AJAX的学习,进度很慢。学期伊始事情比较多,尤其是在大四。我也真真切切的体会到了那种临近毕业特有的迷茫,困惑...不少公司,如中软,创软等来学校做收费的培训。我就不相信了,辛辛苦苦学了四年,到了毕业还得再掏那好几千块才能走上工作岗位,你当我们大学都是打打网游,睡睡懒觉过来的?什么世道

前些日子将剩下的多样式选择和列表控件学习完毕了,做出来的小东西堆在一个页面,也不贴出来看了。往后就开始第五章的内容——AJAX Control Toolkit中的其他控件。

AJAX ControlToolkit的多样式面板

    快开学了,驾校考试延期了,厚厚的金庸小说快看完了,奥运快结束了,一切美好的东西都要有个完结。正如前几篇博文把文字处理控件学习完了,今天开始了多样式面板的学习。

    首先把上午做的登陆面板展示下,在细化了解它的功能实现

    这个面板相信大家都很熟悉,是在注册用户登陆时的界面。我做的样子是丑陋了一些...可是却应用了好几个控件来实现相应的功能,下面一一罗列。

    1.AlwaysVisibleControl控件

它实现了浮动面板即panel1总是可见,主要的几个属性都是指明该面板的偏移量,即在浏览器中的位置。该控件所控制的面板往往是很重要,突出显示的的内容。

    2.RoundedCorners控件

她可以控制某个控件如Panel,TextBox,Botton成为圆角,主要是为了美观。注意我的整个面板,四角都是圆的吧。属性很简单,Radius调整圆角半径,Corner设置圆角位置。(本例中Radius=`5' Corner=`All')

    3.DropShadowk控件

它可以制造阴影,本例中就对Panel制造了透明度为50%(Opacity=0.5),阴影同为圆角(Rounded=true)

    4.DragPanel控件

它不同于前几个美观设计,比较实用,即使用户可以拖动面板移动。注意它的两个属性TargetControlID和DragHandleID。前者指定被控制的控件,这里是最外面的大Panel1,后者指定拖动的手柄,即把手,这里是嵌套在Panel1中的Panel2,我是用了文字提示。当鼠标点在Panel2是,可实现对整个登陆面板的拖动。

    对于这个登陆面板,就到这里吧。还有一些其他样式的面板,下次再学习。下午和好朋友去切磋羽球,好久没打了,不知道老了没有,哈哈!

再度归来,解决最后的ControlToolkit文字处理控件

    久未更新,这段时间的确太忙了,书也没怎么看。主要是该死的驾校考试,这周就要科目2了,所以每天都得跑去练车,不过想想拿照后就可以正大光明的上路驰骋,苦点累点也值了;还有奥运比赛,作为一个小体育迷,一些主要赛事绝对不容错过的。尤其是中国男篮的每场比赛,且不论战术技术世界强队的差距,单看他们场上的拼搏精神和坚韧态度,就给人一震。

    今天把剩余的文字处理控件搞定下。

    1.弹出式日历选择输入的Calender控件

当用户在输入日期时,可接受的录入格式往往很重要,如何才能给用户更好的提示呢,不妨弹出日历让用户自行选择。注意Calender规定日期格式的Format属性"yyyy-MM-dd"中的"MM"一定要大写,不然不会被识别!

实例:当点击Button1时,自动弹出待选的日期——

     2.控制并验证用户输入格式的MaskedEdit控件

不要小看了这个控件,它的功能十分强大和全面,拥有众多的属性(不再一一列举了-。-#)。总之,它对用户输入的TextBox进行了多方面的限制,如格式,长度,最大值,最小值,对齐方式,焦点,是否允许复制粘贴等等等。配合MaskedEditValidator使用,为用户提供一个友善完好的输入栏。(MaskedEditValidator同样拥有众多属性,它主要用来提供提示消息)

     3.可选择输入的PopupControl控件

这个控件比较复杂,需要相对复杂的代码和算法。在用户进行输入时,它能够提供下列选择项,并根据用户选择自动填充TextBox。时间关系暂且略过。

    第二章的内容到此就结束了,共三篇博文学习了数十种文本处理的相关控件。第三章将要学习AJAX ControlToolkit中的多样式面板(Panel),如浮动,圆角,阴影等。快开学了,要加快学习的脚步,今后的博文可能不会再像之前那样将一个个控件描述得很详细了。

    恩,就这样吧,女篮1/4决赛开始了,去看会还要去驾校练车,加油啊,呼呼呼.......


偷懒归来—AjaxControlkit文字验证控件之二

    我承认,这两天偷懒啦!一直在准备旅游的事情,一切办妥,明天去云台山转转,河南的5A景点就剩下这个就一网打尽了。

    1.多样式验证ValidatorCallout

ValidatorCallout可以给用户友好醒目的提示验证信息,相信大家在网上注册信息的时候遇到过。ValidatorCallout的主要属性是TargetControlID,即要验证的对象控件。注意:ValidatorCallout只能应用于验证控件如RequiredFieldValidator,而不是像前几个那样的TextBox。看实例——

因为在空白的TextBox的时候提交,弹出醒目的提示信息!

 

    2.智能密码强度提示PasswordStrength

这个也是大家在注册页面设置密码的时候常见到的,当输入密码以后,之后会提示用户该密码的安全强度。注意几个属性:TargetControlID=“TextBox的ID”;PrefixText=“强度之前的提示文字”;TextStrengthDescriptions=“差;一般;强”等等。也许大家想知道密码的强弱怎样区分出来的,属性CalculationWeightings决定,它的格式是CalculationWeightings="长度比重A;数字比重B;大写比重C;特殊字符比重D;"且A+B+C+D=100。其余还有些次要属性不再列举,设置以上几个关键属性后,实例如下——

     晚上就看了这些比较简单的内容,剩下的文字处理控件等旅游回来一网打尽吧,gl~

AJAX ControlToolkit中文字处理控件

    惊叹于昨晚的奥运开幕,感谢老谋子,为我们为世界呈现了一个盛世中国。看了一天的奥运赛事了,傍晚才翻开书本。进入了第二章——讲解AJAX ControlToolkit中的一些文字处理控件。

    1.TextBox Watermark水印提示控件

我们在网站上常能在用户名的Textbox里面看到淡灰色字体“请输入...”的提示信息。当光标移在上面文字就消失了,这个就是用TextBox Watermark来实现的;

    2.FilteredTextBox拒绝非法字符

FilteredTextBox可以过滤我们在TextBox中输入的一些非法字符(如:$,@,*等),很好用。当FilterMode为ValidChars时,在属性栏ValidChars填入Valid的字符集,当FilterMode为InvalidChars时,在属性栏InvalidChars填入Invalid的字符集,简单的过滤掉不需要的字符,根据需要很好控制,可比正则表达式好用多啦!!哈~

    要吃饭了,才学了两个控件,剩下的回头再看啦。。


奥运日学习——安装AjaxControlToolkit

    今天是2008年8月8日,万众瞩目的2008北京奥运会将在今晚8点开幕。热烈祝贺!虽然很多企事业单位今天放假一天,但是学习还得依旧。

    1.Asp.Net AJAX的五大基本控件介绍完毕后,再来安装一个工具包——AjaxControlToolkit。依然进入官网下载页http://ajax.asp.net/downloads 找到AjaxControlToolkit.zip:ASP.NET AJAX Control Toolkit控件,包括源代码,大小为3440KB(实际我下到的是3462KB)然后解压到文件夹,察看内容,具体包含4个项目,后面会学习他们的作用。

    2.下面要导入Ajax Control Toolkit中的控件,在工具栏中,新建选项卡[AJAX Control],右键选择项中浏览,添加AjaxControlToolkit.dll,路径书中没有说明,最后搜.dll文件,找到路径为—E:\Project2005\AjaxControlToolkit\SampleWebSite\Bin下的这个程序集,确定,哗啦啦瞬间几十个新控件“诞生”了。

如图:

             

    3.引用AjaxControlToolkit中的程序集。虽然程序员在使用AjaxControlToolkit中控件的时候,默认会自动引用程序集;同时也可以手动添加。在添加引用中,依然找到AjaxControlToolkit.dll文件,将添加进的资源文件除zh_CHS之外全部删除,只保留简体中文环境即可。

    4.Web演示站点。将SampleWebSite启动为浏览页,是一个全英环境下介绍AjaxControlToolkit中全部控件的页面,内容图文并茂,详细之至,很好的参考学习资料,但是英语要过关哦!

    5.Web测试站点。将ToolkitTests启动为浏览页,同样全英环境下,对AjaxControlToolkit中每个控件进行功能上的测试。感觉挺有意思的,依依认识了每个控件。但这些测试有什么用途我现在还不了解。。

    环境全部都调试好了,书中后面会一一介绍AjaxControlToolkit中的各种控件,看着目录的那些小实例,感觉要比之前的概念有意思多啦!本来嘛,我们这行业,实践才是最终的目的。

     期待今晚的奥运开幕,预祝奥运会圆满成功!


ASP.NET AJAX余下三个基本控件

  昨晚回顾了下《罪恶之城》,这部血腥暴力的经典影片令我再呼过瘾。只是2点多的睡眠,直到今天11点多还是困的很,还顺带梦到了我组织奥运会开幕呢 --# 总算起来了,学习学习!

  之前的两篇博文学习了ScriptManagerUpdatePanel控件,今天来了解余下的三个AJAX控件。

  Timer  顾名思义,计时器控件。指定一个间隔时间(属性Interval)和Tick事件,然后在每一次间隔到达,触发Tick事件。因此Timer可以定时执行一些制定操作,如定时刷新Web窗体页等。

  做一个实例来自动更新时间吧——

拖入一个label1timer1,设定interval1000ms[每秒钟执行一次]。双击timer,添加代码:

protected void Timer1_Tick(object sender, EventArgs e)

    {

        Label1.Text = "当时时间:" + DateTime.Now.ToString();

  }

并添加page_load()

protected void Page_Load(object sender, EventArgs e)

    {

        Label1.Text = "当时时间:" + DateTime.Now.ToString(); //页面首次载入显示即时时间

    }

  省略起见,我没有将label1timer1放入UpdatePanel而局部更新。现在的效果是,每一秒钟页面会被刷新一次,label1中的时间也会被更新一次。

  UpdateProgress  更新进度条控件。这个控件很特殊,也很实用。它能够显示Web窗体页和服务器之间的交互过程,更友好的请用户等待。相信大家在上网的时候应该见过类似的进度条。

  拖入UpdatePanel1,并在其中放入button1[单击加载数据]UpdateProgress1[Web页正在加载,请等待.....],控件摆放就绪,click()事件:

     System.Threading.Thread.Sleep(5000);//将当前线程阻止5秒,即延时5s

这样当单击button1时,UpdateProgress1Web服务器将进行交互,而UpdatePanel1将显示这一过程。注意:属性DisplayAfter此处设置为0,如设为3000(ms),将在3s中后显示UpdateProgress1中的等待提示。我想,当有些交互时间非常短的时候,可以有效的避过等待提示,给予用户更好的体验。  实例如图:

     ScriptManagerProxy  控件管理脚本。大家都还记得ScriptManager吧,它们在功能相似,用来管理Web窗体页的脚本。但是,如我在那篇博文的红字提示——ScriptManager只能在每个Web页面出现一次,所以嵌套页中的相关空间和脚本只能用ScriptManagerProxy来管理。具体不再列举实例。

      总算完工勒,傍晚去打篮球,晚饭吃多了也没好好打...好了,War3!!

ASP.NET AJAX五大基本控件之UpdatePanel

        昨晚捧着鹿鼎记,从书中醒来时发现已经大半夜了,即刻刷牙睡觉。这一觉甚是香甜,居然还梦到自己打后卫时给姚明传球,现实中对中国男篮的后卫水平实在是恨铁不成钢啊!8点半多便已起来,洗漱早饭,继续学习吧!

        继续我的AJAX五大基本控件的学习——局部更新控件UpdatePanel。前面提过,ScriptManager和UpdatePanel共同构成无刷新的Web窗体页。UpdatePanel最重要的功能就是实现页面局部更新,这里我根据书中实例做了一个简单的试验,便于理解。

        新建一个页面,添加ScriptManager和UpdatePanel控件,两个label(lbtime,label1),一个button(btncommit)[注意:务必将lbtime和btncommit拖入UpdatePanel,否则无法完成对其的控制,失败的教训.....]

在page_load()事件中,添加如下代码:

protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            lbtime.Text = "当时时间:"+ DateTime.Now.ToString();

            Label1.Text = "当时时间:" + DateTime.Now.ToString();

        }

    }

这样当页面第一次载入的时候,两个label会显示当时的时间;

为了更新时间在button_click事件中,添加如下代码——

protected void btncommit_click(object sender, EventArgs e)

    {

        lbtime.Text = "当时时间:" + DateTime.Now.ToString();

        Label1.Text = "当时时间:" + DateTime.Now.ToString();

    }

这样当点击button的时候会发现,只有lbtime的时间被更新了,也就是所谓局部更新,整个页面没有被重新刷新!

当然,如果要实现整页的回送,也很简单,只要利用属性Triggers,它是个集合,向其中添加PostBackTriggers,并设定其ControlID为btncommit,如此一来,当点击btncommit时,整个页面将刷新一次,两个label的时间都被更新!

 

   OK,先这样吧,剩下的三个控件明天学习完。下午和好兄弟去吃饭打球,哈哈哈!!


ASP.NET AJAX五大基本控件之ScriptManager

    昨晚看了个08年美国的恐怖片《灭顶之灾》,心中着实捏了一把汗,久不能眠,难道人类的命运真的会像电影描述的那么悲惨吗。顷刻之间那么多鲜活的生命的消失,大自然之力令我们无力抗拒,唉,扼腕。但是学习还是要继续,哪日上了天堂,管个机房或是开发个“天堂人口户籍管理系统”,多少得到上帝的赏识啊!10点多起床,继续今天的学习!

    ASP.NET AJAX五大基本控件之——ScriptManager,当我新建一个[ASP.NET AJAX-Enable Web Site]的窗体页,设计版式默认摆放着一个ScriptManager控件,源码为——

<asp:ScriptManager ID="ScriptManager1" runat="server" />

顾名思义,ScriptManager即是脚本管理控件,用来管理Web窗体页上的脚本,同UpdatePanel(后面将学习到)共同实现无刷新的Web环境和Web窗体页的局部刷新功能。

注意:每个窗体页有且只有放置一个ScriptManager控件!(具体原因?)

    ScriptManager拥有很多属性,在VS右边的属性栏可以看到,单击每条属性下栏会有相应解释;同时ScriptManager拥有8个向Web窗体页注册脚本的静态方法,大致浏览了一遍,使用的时候再详细理解。下面是ScriptManager的两大功能——

1.引入脚本资源(如javascript文件.js)。

添加js文件AjaxScript.js,并写一个简单的函数:

function StringJoin(leftvalue,rightvalue,resultvalue)

{

     resultvalue.value = leftvalue.value + rightvalue.value;//拼接字符串

}

然后我们来引用它。

<asp:ScriptManager ID="ScriptManager1" runat="server" >

<Scripts>

    <asp:ScriptReference Path="AjaxScript" ScriptMode="Auto"/>

</Scripts> 

</asp:ScriptManager>

这样,ScriptManager就实现了对脚本AjaxScript.js的引用!拉入相应控件并更新其ID。


2.引入Web服务资源(.asmx)(Web服务文件.asmx)

ScriptManager引入Web服务资源语法类似——

<asp:ScriptManager ID="ScriptManager1" runat="server" >

<Services>

    <asp:ScriptReference Path="AjaxService.asmx" />

</Services> 

</asp:ScriptManager>

    对Web服务文件.asmx理解不够啊...唉,哪位能给个简单的解释呢?引用效果同JS脚本,页面不再显示啦。

    ScriptManager的学习就到这了,往后的几个控件都只是先局部到这种概念性的理解,再往后书中给了不少实例,做起来就有趣的多了。

    吃饭先!

新书上手——AJAX环境的配置

    当前非常流行的技术——.Net框架下大名鼎鼎的AJAX,在学校这四年的课堂上估计是没机会学习了。特意去买了本书自学下,又重又厚的《Asp.Net AJAX实用开发详解》。封面四个大红字——完全手册,一点不假。大致翻看下,书中对基于Web的AJAX技术介绍之多之详,确实完全!只是自己要踏踏实实的走过这条漫长的自学道路。为了自己能持之以恒走下去,为了“你不是一个人!”,从今往后我会把每天的学习成果和心得拿上来,总结,分享。谢谢大家^_^

    首先说一下本书实例源码运行环境,本机环境均已调试完毕,具体如下——

操作系统:Windows XP

开发环境:Microsoft Visual Studio 2005

数据库:SQL Server 2005

Web 服务器:IIS 5.1

    简单介绍下AJAX。Web2.0时代,微软在ASP.NET 2.0之后成功推出ASP.NET AJAX技术,实现了异步网络。AJAX全称为Asynchronous JavaScrip and XML,顾名思义,这种技术可以实现将浏览器一部分内容,避免将这个浏览器内容提交至服务器。

和传统Web技术相比,ASP.NET AJAX主要有以下三点区别——

  1.更新页面部分内容,无需全部刷新即能同服务器通信;

    2.异步操作页面同服务器操作,使页面有更快的响应能力;

3.页面和服务器交互部分内容,提高了应用程序效率。

    为了能够使用AJAX技术,我们要来搭建一个开发环境。让我高兴的是,ASP.NET AJAX是免费的,从微软官网http://ajax.asp.net即可直接下载!打开页面后,找到ASP.NET Extensions v1.0并下载之。注意安装之前确认机器满足一下必备条件——

1.操作系统为windows家族如Server 2003,XP Home,XP Professional,Vista等;(够狠,丝毫不给Linux机会)

2.安装.NET Framework 2.0或更高版本;(一般都是3.0啦)

3.IE 5.01或更高版本。(这个估计大家不是6.0就是7.0吧)

    安装程序只有1.36MB大小,下载速度很快,就是这个了——单击安装,然后是经典的“下一步”,最后点Finsh就大功告成啦!安装成功后,打开VS 2005,就会发现[工具箱]中将多出一个选项卡[AJAX Extensions],里面包含了Web服务器控件——

除了指针外,其余5个主要控件日后要逐个学习。

    总之,现在已经可以使用ASP.NET AJAX了,再加把劲!书中给了一个类似“Hello World”的例子AjaxStart,就是新建一个[ASP.NET AJAX-Enable Web Site]的窗体页,察看HTML代码和Web.config配置文件。

    一个上午的学习,就是把AJAX相关环境配置好了,感觉还是很有收获的。书中往后开始分别讲解5个AJAX的web控件,虽然大一的C#课上接触不少VS中的各类控件,但这5个还真是不知道怎么用呢,明天赶紧看看书学习下!

    下午驾校要练模拟库,得去开几把,希望科目2赶紧考试吧,我的照啊!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值