热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AJAXControlToolkit的使用方法

1AJAXControlToolkit简介ASP.NET是一种用于创建动态Web应用程序的技术,它是.NETFramework的一部分。ASP.NETAJAX是一个免费框架,用于快速建立有效率及交互式的、能在所有流行的浏览器工作的Web应用程序。AJAXControlToolkit是CodePlex开源社区与微软

1 AJAX Control Toolkit简介

  ASP.NET是一种用于创建动态Web应用程序的技术,它是.NET Framework的一部分。ASP.NET AJAX是一个免费框架,用于快速建立有效率及交互式的、能在所有流行的浏览器工作的Web应用程序。AJAX Control Toolkit是CodePlex开源社区与微软之间的一个联合项目。该Toolkit建立在ASP.NET AJAX扩展之上,并以成为所有可用的web客户端组件中最大、最好的一个工具集作为目标。

  该Toolkit满足了三个需要。首先,它提供了一个组件集,使网站开发者可以直接使用,从而快速完成web应用程序的开发而不用写过多的代码,其次,它给那些希望写客户端代码的人提供了很好的范例,第三,它还能使最好的脚本开发者的工作脱颖而出。总而言之,AJAX Control Toolkit是一组功能强大的web客户端工具集,能大大提高web应用程序的开发效率及其质量。

  2         AJAX Control Toolkit的使用

  下面结合实际案例介绍AJAX Control Toolkit的使用。实际案例为笔者根据单位的需求开发的维修管理系统,笔者所在单位为三级甲等医院,因单位的电脑硬件维修任务较为频繁需外包,要对维修信息进行记录及统计,特开发该系统,以方便信息的录入、查找及统计,提高工作效率及管理水平。

  2.1 准备工作

  如何将这套功能强大的工具集加入到Visual Studio.NET 2008中,并在我们应用程序开发的过程中使用呢?首先要安装.NET Framework 3.5、Visual Studio 2008(下简称VS2008)、SQL Server 2005,做好系统和数据库的设计工作并准备好数据库。

  从ASP.NET AJAX Control Toolkit网站(http://www.codeplex.com/AjaxControlToolkit)下载AJAX Control Toolkit的最新版本(Version 3.0.20820),该版本是针对微软官方的NET Framework 3.5 SP1和 VS2008 SP1发布的。下载后将其解压,把 ..AjaxControlToolkit-Framework3.5SampleWebSiteBin 下的所有文件都复制到 ..AjaxControlToolkit-Framework3.5Binaries下,为在VS2008中添加工具栏做准备。打开VS2008,新建网站,选择ASP.net(网页[C#]) .net framework 3.5(因VS2008包括了,.net framework 3.0, .net framework 2.0),给项目添加Bin目录,将Binaries下AjaxControlToolkit.dll 添加到项目中的Bin下。然后在VS2008中工具栏里新建一个选项卡,命名为 Ajax Control Toolkits(可随意)然后将Binaries 下的 AjaxControlToolkit.dll 拖动到此选项卡中,选项卡中便会出现很多控件,这些都是有助于我们开发工作的利器。我们再来看看添加工具集后的变化,在项目中添加Web窗体,从工具箱拖入一个textbox,可以看到右边多出了一个“textbox任务”的菜单,点击“添加扩展程序”,弹出“扩展程序向导”对话框,可见提供了很多VS中原本没有的工具给我们使用,如图2.1所示

系统开发中AJAX Control Toolkit的应用

 图2.1 “扩展程序向导”对话框

  2.2 实际运用

  以下结合案例中使用到的控件,介绍AJAX Control Toolkit的使用方法及其功能。案例的录入界面如图2.2所示

系统开发中AJAX Control Toolkit的应用

  图2.2 系统信息录入界面

  2.2.1 CalendarExtender控件

案例在信息录入界面的报修时间、完成时间栏中需要录入相关的时间信息,选取CalendarExtender控件可实现鼠标点选完成时间的录入,方便快捷,效果如图2.3所示:

系统开发中AJAX Control Toolkit的应用

  图2.3 鼠标点选录入时间

  VS中自带的Calendar控件是无法做到这一点的。

  CalendarExtender控件的使用非常简单:

  在Web窗体中添加ScriptManager控件,添加textbox,取名txtreptime,点击“添加扩展程序”,在弹出的“扩展程序向导”对话框中选择CalendarExtender控件,即可。Web窗体源页面相应代码为:

EnableScriptGlobalization="true"

>

               

 Format="yyyy-MM-dd"

 TargetCOntrolID="txtreptime">

其中,EnableScriptGlobalization="true"自加,使控件显示中文;Format="yyyy-MM-dd"自加,控制时间的格式。

  2.2.2          AutoCompleteExtender控件的使用

使用AutoCompleteExtender控件为了实现自动完成功能及动态绑定数据,其中科室、故障描述、维修人员等栏都使用了该控件。在后台绑定数据库中相应的数据,如科室名称的录入中,输入拼音或输简称后即可自动查找全称,鼠标点选实现快速录入,如需更新数据,则在数据库中进行更新即可实现动态绑定。如图2.4所示:

系统开发中AJAX Control Toolkit的应用

  2.4 自动完成功能

  使用步骤如下:

  第一步:在input.aspx窗体中添加一个TextBox控件,取名txtdep,添加扩展程序并选取AutoCompleteExtender控件。

  拖进设计界面后代码如下所示:

   第二步:在Web.config文件中appSettings节添加数据库连接字符串,为连接数据库做准备:

 

其中,EnableScriptGlobalization="true"自加,使控件显示中文;Format="yyyy-MM-dd"自加,控制时间的格式。

  2.2.2          AutoCompleteExtender控件的使用

使用AutoCompleteExtender控件为了实现自动完成功能及动态绑定数据,其中科室、故障描述、维修人员等栏都使用了该控件。在后台绑定数据库中相应的数据,如科室名称的录入中,输入拼音或输简称后即可自动查找全称,鼠标点选实现快速录入,如需更新数据,则在数据库中进行更新即可实现动态绑定。如图2.4所示:

系统开发中AJAX Control Toolkit的应用

  2.4 自动完成功能

  使用步骤如下:

  第一步:在input.aspx窗体中添加一个TextBox控件,取名txtdep,添加扩展程序并选取AutoCompleteExtender控件。

  拖进设计界面后代码如下所示:

   第二步:在Web.config文件中appSettings节添加数据库连接字符串,为连接数据库做准备:

 

 其中,server为SQL服务器名称,案例为本地,uid、pwd为SQL Server用户名和密码,initial catalog为要连接的数据库,,请根据实际情况填写。

  第三步:建立Web服务(WebService)。要使用AutoCompleteExtender,我们要通过Web服务传递数据。在解决方案资源管理器单击项目-〉添加新项-〉Web服务。这里使用了默认的名称WebService.asmx。

  WebService.asmx的代码修改如下:

using System.Collections;

using System.Web;

using System.Web.Services;

using System.Collections.Generic;

using System.Web.Services.Protocols;

using System.Data;

using System.Data.SqlClient;

using AjaxControlToolkit;

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(COnformsTo= WsiProfiles.BasicProfile1_1)]

//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。

[System.Web.Script.Services.ScriptService]//必需,告诉.net runtime该WebService被允许从客户端调用

public class WebService : System.Web.Services.WebService

 {

    public WebService () {     }

     //构建Web服务的函数

  [WebMethod]

    public string[] getdepalist(string prefixText,int count)

{

//连接数据库

        string sqlstr = System.Configuration.ConfigurationSettings.AppSettings["ConnString"];

        SqlConnection sqlcon=new SqlConnection(sqlstr);

//从数据库中的表里用select语句返回科室的全称

        string mysql = "select Area_Full from ST_Area where Area_Full like" + "'" + prefixText + "%' or Area_Spell like" + "'" + prefixText + "%'" ;

//使用SqlDataAdapter对控件进行数据的填充

        SqlDataAdapter da= new SqlDataAdapter(mysql, sqlcon);

        DataSet ds=new DataSet();

        if (count == 0)

        { count = 10;}

        da.Fill(ds, "Depa_Full");

//List是一个集合,根据特殊条件找到我们所需要的值

        List items = new List(count);

        for (int i = 1; i <= ds.Tables["Depa_Full"].Rows.Count; i++)

        {

            items.Add(ds.Tables["Depa_Full"].Rows[i - 1][0].ToString().Trim());                  

        }

        return items.ToArray();

}

}

  第四步:设置AutoCompleteExtender控件,具体设置

        TargetCOntrolID="TextBox1"

        ServicePath="WebService.asmx"

        ServiceMethod="getdepalist "

MinimumPrefixLength="0">

  其中,ServicePath是指Web服务的文件名。ServiceMethod是指调用Web服务的函数名。MinimumPrefixLength是指输入多少个字符后开始列出输入提示列表,本案例为0,实现鼠标点击即返回所有科室名称,如图2.5所示(注:下图中AutoCompleteExtender控件的外观可在CSS文件中控制,代码略):

   系统开发中AJAX Control Toolkit的应用

  图2.5 鼠标点击即返回所有科室名称

   3 体会

  实际开发过程中,多次利用了上述两个控件,实现了信息的高效录入,甚至完全使用鼠标就可以完成信息录入,系统使用非常方便,并给用户带来很好的体验。

  AJAX Control Toolki的功能十分强大,笔者只是结合实际案例,介绍了其中很小的一部分,意在抛砖引玉,期望能激发读者的兴趣,结合系统开发的实际需要,灵活使用该工具集,提高编程效率,开发出用户体验丰富、功能强大的应用程序。


推荐阅读
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文探讨了在 ASP.NET MVC 5 中实现松耦合组件的方法。通过分离关注点,应用程序的各个组件可以更加独立且易于维护和测试。文中详细介绍了依赖项注入(DI)及其在实现松耦合中的作用。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 本文介绍了如何在C#应用程序中有效隐藏SQLCMD命令行窗口,确保程序运行时不会弹出黑色命令提示符窗口。 ... [详细]
  • 本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ... [详细]
  • 本文将介绍如何利用Python爬虫技术抓取国内主流在线学习平台的数据,并以51CTO学院为例,进行详细的技术解析和实践操作。 ... [详细]
author-avatar
鑫瑜Twinkle
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有