DevExtreme教程:如何不用VS创建和部署DXTREME程序
作者:不详 来源:慧都控件网 浏览:Loading...次 发布时间:2014-07-29 评论:0条
在DevExpress中HTML和JavaScript 组合可以你创建一个友好的、交互的、全功能的应用程序而且不需要依赖于某个IDE,而且这些应用程序的代码可以在记事本中重新编写。
DevExtreme里面的DXTREME HTML JS框架将继承此功能,并允许您使用最喜爱的工具进行开发。在本文中,我们将展示如何将使用 DXTREME 框架的主要架构创建新的应用程序。【DevExtreme下载】
在编写的代码之前,先从DXTREME 来源复制的"css"和"js"目录((%PROGRAMFILES%\DevExpress\DXTREME 12.2\Sources\Lib\)到项目目录。
然后创建一个 index.html 文件,包括我们的程序集:
   <head>
  <meta charset="utf-8" />
  <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
  <script type="text/javascript" src="js/knockout-2.1.0.js"></script>
<script type="text/javascript" src="js/globalize.js"></script>
  <script type="text/javascript" src="js/dxtreme.core-12.2.js"></script>
 <script type="text/javascript" src="js/dxtreme.framework-12.2.js"></script>
  <script type="text/javascript" src="js/dxtreme.widgets-12.2.js"></script>
<script type="text/javascript" src="js/dxtreme.viz-12.2.js"></script>
  <link rel="stylesheet" type="text/css" href="css/dxtreme.ios.default-12.2.css" />
 <link rel="stylesheet" type="text/css" href="css/dxtreme.android.holo-dark-12.2.css" />
  <link rel="stylesheet" type="text/css" href="css/dxtreme.desktop.default-12.2.css" />
<link rel="stylesheet" type="text/css" href="css/dxtreme.win8.black-12.2.css" />	
  <script>
      $(function() {
    app.navigate();
   });
</script>
</head>
<body>
  <div id="viewPort"></div>
    </body>
将Layout.html 和 layout.css 文件添加到项目目录,并将以下代码插入到相应的文件:
div data-dx-role="layout" data-dx-name="navbar" data-dx-platform="ios" class="page">
	
	   <div class="layout-header" data-dx-placeholder="header" data-dx-transition="none">
	       <div
	               data-bind="dxToolbar: { items: [ { text: title, align: 'center' } ] }"
	               data-dx-command-container="back: { showIcon: false }, cancel: { showIcon: false }, create: { showText: false }, edit: { showIcon: false }, save: { showIcon: false }"
	               data-dx-left-locations="back;cancel"
	               data-dx-right-locations="create;edit;save">
	       </div>
	   </div>
	
	   <div class="layout-content" data-dx-placeholder="content" data-dx-transition="slide"></div>
	   
	   <div class="layout-footer" data-dx-placeholder="footer">
	       <div id="navBar" data-bind="dxNavBar: { }" data-dx-command-container="navigation: { }">        
	       </div>
	   </div>
	
	   <div data-dx-target-placeholder="view-footer" class="view-footer">
	       <div data-bind="dxToolbar: { }" class="view-toolbar-bottom" data-dx-command-container="'delete': { showIcon: false }" data-dx-left-locations="delete"></div>
	   </div>
	   
	</div>
	
	<div data-dx-role="layout" data-dx-name="navbar" data-dx-platform="android" class="page">
	
	   <div class="layout-header" data-dx-placeholder="header">
	       <div id="navBar" data-bind="dxNavBar: { }" data-dx-command-container="navigation: { }">        
	       </div>
	   </div>
	
	   <div class="layout-content" data-dx-placeholder="content" data-dx-transition="slide"></div>
	   
	   <div class="layout-footer" data-dx-placeholder="footer">
	       <div
	           data-bind="dxToolbar: { }"
	           data-dx-command-container="create: { showText: false }, edit: { showText: false }, 'delete': { showText: false }, save: { showIcon: false }, cancel: { showIcon: false }"
	           data-dx-left-locations="edit;save"
	           data-dx-right-locations="delete;cancel">
	       </div>
	   </div>
	   
	</div>
	
	<div data-dx-role="layout" data-dx-name="navbar" data-dx-platform="win8" class="page">
	   <div class="layout-header" data-dx-placeholder="header">
	       <h1 data-bind="text: title"></h1>
	       <div id="navBar" data-bind="dxNavBar: { }" data-dx-command-container="navigation: { showIcon: false }"></div>
	   </div>
	   <div class="layout-content-wrapper">
	       <div class="layout-content" data-dx-placeholder="content" data-dx-transition="none"></div>
	   </div>
	</div>
	
	
	
	/* Layout */
	
	.layout-content div[data-dx-target-placeholder] {
	   height: 100%;
	   position: absolute;
	   width: 100%;
	}
	
	.page {
	   height: 100%;
	   width: 100%;
	   position: relative;
	}
	
	.layout-header {
	   position: absolute;
	   width: 100%;
	}
	
	.layout-content {
	   position: absolute;
	   width: 100%;
	   overflow: hidden;
	}
	
	.layout-footer {
	   width: 100%;
	   position: absolute;
	}
	
	/* ios */
	
	.dx-theme-ios .layout-header {
	   top: 0;
	   height: 44px;
	}
	
	.dx-theme-ios .layout-content {
	   top: 44px;
	   bottom: 59px;
	}
	
	.dx-theme-ios .layout-footer {
	   bottom: 0;
	   overflow: hidden;
	   height: 59px;
	}
	
	.dx-theme-ios div[data-dx-target-placeholder].view-footer {
	   position: static;
	}
	
	.dx-theme-ios .view-toolbar-bottom.dx-toolbar {
	   background: transparent;
	   border: none;
	   margin-bottom: 10px;
	   display: none;
	}
	
	.dx-theme-ios .view-toolbar-bottom.dx-toolbar .dx-toolbar-left {
	   right: 0;
	}
	
	.dx-theme-ios .view-toolbar-bottom.dx-toolbar .dx-toolbar-left .dx-button {
	   position: absolute;
	   left: 10px;
   right: 10px;
	}
	
	/* android */
	
	.dx-theme-android .layout-header {
	   top: 0;
	   height: 68px;
	}
	
	.dx-theme-android .layout-content {
	   top: 68px;
	   bottom: 40px;
	}
	
	.dx-theme-android .layout-footer {
	   bottom: 0;
	   height: 40px;
	}
	
	.dx-theme-android .dx-tabs.dx-navbar {
	   height: 100%;
	}
	
	/* desktop */
	.dx-theme-desktop {
	   background: #ccc;
	}
	
	.dx-theme-desktop .fixed-width {
	   width: 100%;
	   max-width: 960px;
	   margin: 0 auto;
	}
	
	.dx-theme-desktop .logo {
	   float: left;
   margin: 25px;
	   background: white;
	}
	
	.dx-theme-desktop h1 {
	   margin: 0;
	   padding: 10px;
	}
	
	.dx-theme-desktop .layout-header {
	   top: 0;
	   position: relative;
	   overflow: auto;
	   background: #303030;
	   text-align: left;
	   border-top: 1px solid rgba(0,0,0,.1);
	   -webkit-box-shadow: inset 0 1px rgba(255,255,255,.2);
	   -moz-box-shadow: inset 0 1px rgba(255,255,255,.2);
	   box-shadow: inset 0 1px rgba(255,255,255,.2);
	}
	
	.dx-theme-desktop .dx-tabs {
	   border: none;
	   background: transparent;
	   -webkit-box-shadow: none;
	   -moz-box-shadow: none;
	   display: block;
	}
	
	.dx-theme-desktop .layout-content-wrapper {
	   background: #fff;
	}
	
	.dx-theme-desktop .layout-content {
	   position: relative;
	   overflow: visible;
	   min-height: 400px;
	}
	
	.dx-theme-desktop .layout-footer {
	   position: relative;
	   overflow: auto;
	}
	
	/* win8 */
	.dx-theme-win8 {
	   height: 100%;
	}
	
	.dx-theme-win8 [data-dx-name="navbar"] .layout-header,
	.dx-theme-win8 [data-dx-name="navbar"] .layout-content,
	.dx-theme-win8 [data-dx-name="navbar"] .layout-content div[data-dx-target-placeholder] {
	   position: static;
	   width: auto;
	}
	
	.dx-theme-win8 [data-dx-name="navbar"] .layout-content div[data-dx-target-placeholder] {
	   height: auto;
	}
	
	.dx-theme-win8 [data-dx-name="navbar"].page {
	   display: -ms-grid;
	   -ms-grid-columns: 1fr;
	   -ms-grid-rows: 104px 1fr;
	   overflow: hidden;
	}
	
	.dx-theme-win8 [data-dx-name="navbar"] .layout-header {
	   -ms-grid-column: 1;
	   -ms-grid-row: 1;
	   height: 180px;
	   padding: 60px; /* #B230682 */
	}
	
	.dx-theme-win8 [data-dx-name="navbar"] .layout-header h1 {
	   margin-bottom: 40px;
	}
	
	.dx-theme-win8 [data-dx-name="navbar"] .layout-content-wrapper {
	   padding: 0 60px 60px 60px; /* #B230682 */
	   /* for IE */
	   -ms-grid-column: 1;
	   -ms-grid-row: 2;
	   padding: 110px 60px 60px 60px\9; /* #B230682 */
	   /* end for IE */
	}
这是一个对于所有的视图常见的代码,在index.html 文件中同样包含这些代码:
添加 index.js 文件并将其包括在 index.html 文件中。在此文件中,创建一个 HtmlApplication 实例,这里使用演示的代码。
创建“views”目录,在此目录中,把所有的 HTML,JS 和 CSS 文件与这个views相关联,不要忘记在 index.html 文件中包括的新文件。创建的所有视图后,需要声明在 index.js 文件中声明路由规则,第一个匹配没有参数的URL 的rule的默认视图名字,,将会被用于查找启动视图。比如以下的代码:
[JScript]Open in popup window
	myApp.router.register("Product/:categoryId/:id", { view: "Product", id: undefined });
	myApp.router.register(":view/:id", { view: "index", id: undefined });
下面是index.html 和index.js 文件的例子:
[HTML]Open in popup window
	<!DOCTYPE html>
	<html>
	    <head>
	        <meta charset="utf-8" />
	        <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
	        <script type="text/javascript" src="js/knockout-2.1.0.js"></script>
	        <script type="text/javascript" src="js/globalize.js"></script>
	
	        <script type="text/javascript" src="js/dxtreme.core-12.2.js"></script>
	        <script type="text/javascript" src="js/dxtreme.framework-12.2.js"></script>
	        <script type="text/javascript" src="js/dxtreme.widgets-12.2.js"></script>
	        <script type="text/javascript" src="js/dxtreme.viz-12.2.js"></script>
	
	        <link rel="stylesheet" type="text/css" href="css/dxtreme.ios.default-12.2.css" />
	        <link rel="stylesheet" type="text/css" href="css/dxtreme.android.holo-dark-12.2.css" />
	        <link rel="stylesheet" type="text/css" href="css/dxtreme.desktop.default-12.2.css" />
	        <link rel="stylesheet" type="text/css" href="css/dxtreme.win8.black-12.2.css" />
	
	        <script type="text/javascript" src="index.js"></script>
	
	        <link rel="stylesheet" type="text/css" href="layout.css" />
	        <link rel="dx-template" type="text/html" href="layout.html" />
	
	        <link rel="dx-template" type="text/html" href="views/start.html" />
	        <script type="text/javascript" src="views/start.js"></script>
	
	        <script>
	            $(function() {
	                app.navigate();
	            });
	        </script>
	    </head>
	    <body>
	        <div id="viewPort"></div>
	    </body>
	</html> 
	
	
	
	window.myApp = window.myApp || {};
	
	$(function() {
	 app = new DevExpress.framework.html.HtmlApplication({
	   // the default namespace where code-behind/ViewModel functions reside
	   ns: window.myApp, 
	   // a DOM tree node where Views will be rendered
	   viewPortNode: document.getElementById("viewPort"),
	   // a layout used when a View does not specify the data-layout attribute
	   defaultLayout: "navbar",
		navigation: [
			{
				title: 'Start',
				execute: '#start',
				icon: 'home'
			}
		]
	 });
	 app.router.register(':view/:id', { view: 'start', id: undefined });
	})
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [http://www.devexpresscn.com/]
本文地址:http://www.devexpresscn.com/Resources/Documentation-421.html
关键字: DevExtreme
评论列表
暂无评论
请谈谈你的看法 请使用IE或者Firefox浏览器,暂不支持Chrome!

慧都控件网为DevExpress界面控件的中国地区唯一正式授权经销商,正版控件销售公司,授权代理商,经销商及合作伙伴。
电话:400-700-1020
              023-66090381
邮箱:sales@evget.com
相关资源
- DevExpress 2013.2正式版发布
 - DXperience WPF 13.2 PDF Viewer新功能体验
 - DevExpress VCL 2014新控件将只支持Delphi/C++Builder XE
 - DevExpress Dashboard示例代码:处理代码形式的数据源
 - 界面控件DevExpress VCL更新至v13.2.3
 - DXperience Universal Suite发布v13.2.7
 - DXperience Windows 8 XAML入门教程:创建饼图
 - 慧都独家修复DevExpress的汉化bug
 - 2013年DevExpress中文教程大盘点
 - DevExpress Dashboard示例代码:连接到数据库之前自定义连接设置
 - DevExpress 13.2.8发布
 - DevExtreme入门视频教程汇总
 - 关于DevExpress官网无法正常访问的解决方案
 - DevExpress教程之RichEdit控件
 - DevExpress GridControl常见问题总结
 - DevExpress 2014.1发布
 - DevExpress 2014.1新版发布会报名开始啦!
 - DevExpress VCL 2014.1发布
 - DevExpress2014.1新版发布会圆满结束
 - DevExpress 2014.1.5发布
 
 
    


