实用ExtJS教程100例-001:开天辟地的Hello World

南笙酒味 提交于 2020-03-16 01:59:40

ExtJS功能繁多,要想彻底的了解确实很困难。作为初学者,如何能找到一条快速的通道呢?我觉得,如果你有Javascript的基础,那就不要惧怕ExtJS的复杂,从动手开始,遇到问题,解决问题,积累经验,这是一条非常快速的学习途径。

从今天开始我将完成一系列ExtJS使用中常常用到的功能,并通过例子的形式告诉大家如何一步一步的完成,相信我,ExtJS并不可怕!

本系列教程以代码演示为主,代码讲解相结合,尽量将ExtJS的学习难度降到最低。

要学习本系列教程,你需要具有以下知识:

  • 熟悉Javascript的语法,了解DOM机制
  • 具备CSS基础知识
  • 最好对ASP.NET编程有所了解(不是必须的,只因为服务器代码使用了ASP.NET MVC)

今天我将带领初学者朋友完成第一个例子,将ExtJS引入到你的项目中,并搭建一个模板,我们后续的例子都将以这个模板为基础进行编码。

获取ExtJS

ExtJS的官网地址:http://www.sencha.com/products/extjs

在这个网址上面,我们可以下载到ExtJS的最新版本。目前,ExtJS的最新版是4.2.1,我们将使用这个版本进行讲解。ExtJS 4.x 做了很大的改变,对3.x是不兼容的。

在页面中,我们可以找到下载按钮,下载最新这个版本的ExtJS。下载完成以后对它进行解压,接下来我们将完成Hello World 示例。

Hello World 示例

—— 我相信从无到有的过程绝对是开天辟地的。所以请尊重Hello World这个例子。

下载完以后,我们需要对压缩包进行解压。ExtJS 是开源的,所以压缩包中包含了很多源代码和调试用的一些东西,这些东西对我们开发工程中的调试很有用,但在引用的时候,我们只需要使用到:

  1. ext-all.js
  2. locale/ext-lang-zh_CN.js
  3. resources/css/ext-all.css

这些文件的说明如下:

  1. ExtJS的压缩代码,在生产环境中使用,开发中我们可以使用ext-all-debug.js来代替,方便调试。
  2. 简体中文语言包。
  3. ExtJS的样式文件,如果要更换其它主题,只需要将它替换成其它的主题文件即可。

了解了这些内容,我们就可以很轻松的完成Hello World示例了。

第一步,新建一个html文件

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
</body>
</html>

第二步,添加上述的三个文件引用

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <

script src="extjs-4.2.1/ext-all.js"></script> <script src="extjs-4.2.1/locale/ext-lang-zh_CN.js"></script> <link href="extjs-4.2.1/resources/css/ext-all.css" rel

="stylesheet" />
</head>

第三步,完成编码

我们的编码很简单,为了方便演示,我们只在页面加载完成的时候弹出一个对话框,在对话框中显示“Hello World”。代码如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>实用ExtJS教程100例-001:开天辟地的Hello World - www.qeefee.com</title>
<script src="extjs-4.2.1/ext-all.js"></script>
<script src="extjs-4.2.1/locale/ext-lang-zh_CN.js"></script>
<link href="extjs-4.2.1/resources/css/ext-all.css" rel="stylesheet" />
<script type="text/javascript">

Ext.onReady(function () { Ext.MessageBox.alert("提示", "Hello world"

);
    });
</script>

代码说明:

首先在head标签中添加一个script标签,用来在里面添加我们自己的js代码

然后调用Ext.onReady()方法,这个方法会在DOM加载完成以后调用传入的方法,如果使用过jquery,这个方法就不难理解。通常我们会将代码放在页面加载完成以后执行。

在传入的方法中,我们使用Ext.MessageBox.alert()方法弹出一个对话框,这个方法的第一个参数的标题,第二个参数是内容。

我们的页面在浏览器中的效果如下:

image

这个对话框显得非常精美,显得非常专业,可以用高端大气上档次来形容了,这也是为什么那么多人喜欢ExtJS的原因。

在ASP.NET MVC中搭建模板

看到了吧,如果我们决定动手的时候,ExtJS也并不是那么麻烦,一个简单的Hello World已经把你带入ExtJS的世界,在这个世界里还有更多更好玩儿的东西等着你来发现,但在出发之前,我们先来完善一下装备吧。

由于我比较擅长使用ASP.NET,本系列的例子将使用ASP.NET MVC来提供服务器端的支撑。由于ExtJS的平台无关性(只与浏览器有关),Java和php方面的朋友也可以毫无顾忌的参考这些例子。

在使用ASP.NET MVC的时候,我们通常会用到layout页面,我们来完成一个通用的layout页面,在接下来的示例中,我们都将使用这个布局页为基础进行编码。

我们创建好一个MVC项目,项目结构图如下:

image

 

接下来我们创建一个layout.cshtml,并修改代码:

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    <link href="~/Resources/extjs-4.2.1/resources/css/ext-all.css" rel="stylesheet" />
    <script src="~/Resources/extjs-4.2.1/ext-all.js"></script>
    <script src="~/Resources/extjs-4.2.1/locale/ext-lang-zh_CN.js"></script>
    @RenderSection("script", false)
</head>
<body>
    <div>
        @RenderBody()
    </div>
</body>
</html>

我们只添加了ExtJS的相关引用,然后在head标签中添加了script节点的绘制。接下来我们看看这个layout页是否能正确的完成任务,我们来将刚才的HelloWorld示例使用布局页重新完成一次。

第一步,在HomeController中添加HelloWorld方法:

public ActionResult HelloWorld()
{
    return View();
}

第二步,为HelloWorld方法添加视图:

@{
    ViewBag.Title = "HelloWorld";
}

<h2>HelloWorld</h2>

第三步,创建一个JS文件,用来完成编码

我们在项目根目录中创建一个JSApp目录,将示例用到的JS代码都放在这个目录下面。

在JSApp目录中创建一个Home文件夹,用来对应HomeController,然后在下面创建一个HelloWorld.js,用来对应HomeController中的HelloWorld方法。这算是一种约定吧,以后我们也会遵循这种约定。

HelloWorld.js代码如下:

Ext.onReady(function () {
    Ext.MessageBox.alert("提示", "Hello world");
});

第四步,修改我们的HelloWorld视图页面

修改这个视图页面,将HelloWorld.js引入页面中,修改后的代码如下:

@{
    ViewBag.Title = "实用ExtJS教程100例-001:开天辟地的Hello World - www.qeefee.com";
}
@section script{
<script src="~/JSApp/Home/HelloWorld.js"></script>
}

完成上面的四步以后,运行程序,在浏览器中的截图如下:

image

还不错,模板页已经正常工作了。在以后的示例中,我们将使用这四个步骤来添加演示的代码。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!