Ext+XML实现数据载入

 

 

这里实现的效果的从XML文件中把数据动态的载入到表单中!其实这部分在和data部分一起将比较好,但因为这里也比较容易,涉及到的配置也不多!
Form 表单的Action.load方法的应用,由于前面有详细的讲解Action方法是应用,所以这里不用多讲,为了简单明了,这里只设置俩个配置选项,URL 和 waitMsg,
读取数据部分主要涉及到 Ext.data.XmlReader,即xml数据读取器,record表示数据记录所在的标签名,记住这是指特定的一条记录,不过我这里这里只有一条记录!
fields指记录的字段,其中name表示表单中的字段,mapping表示对应的xml文件中对于的标签名,如果又多层标签嵌套就用‘/’分割各标签间的值,比如表单字段mobil对应xml中的phone标签下的mobil,所以就可以写成mapping:'phone/mobil'


具体的看下面代码
form_xml.html

Java代码 复制代码  收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2. <html>   
  3.     <head>   
  4.         <title>form_xml.html</title>   
  5.         <style type="text/css">     
  6.             body{background-color:#777777}    
  7.             #form-xml{width: 350px;margin-left: auto;margin-right:auto;}    
  8.         </style>     
  9.         <link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css" />   
  10.         <script type="text/javascript" src="../Ext/adapter/ext/ext-base.js"></script>   
  11.         <script type="text/javascript" src="../Ext/ext-all.js"></script>   
  12.         <script type="text/javascript" src="form_xml.js"></script>   
  13.     </head>   
  14.     <body>   
  15.             <div id="form-xml"></div>   
  16.     </body>   
  17. </html>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html>
	<head>
		<title>form_xml.html</title>
		<style type="text/css">  
			body{background-color:#777777} 
			#form-xml{width: 350px;margin-left: auto;margin-right:auto;} 
		</style>  
		<link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css" />
		<script type="text/javascript" src="../Ext/adapter/ext/ext-base.js"></script>
		<script type="text/javascript" src="../Ext/ext-all.js"></script>
		<script type="text/javascript" src="form_xml.js"></script>
	</head>
	<body>
			<div id="form-xml"></div>
	</body>
</html>


form_xml.xml

Java代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <message>   
  3. <contact>   
  4.     <name>LoveBeyond1993</name>   
  5.     <work>WEB Designer</work>   
  6.     <email>you_5214@sina.com</email>   
  7.     <phone>   
  8.         <mobil>15959******</mobil>   
  9.         <home>0792-7604***</home>   
  10.     </phone>   
  11.     <content>EXT实现对XML数据的加载,这里是加载的信息内容</content>   
  12. </contact>   
  13. </message>  
<?xml version="1.0" encoding="UTF-8"?>
<message>
<contact>
    <name>LoveBeyond1993</name>
    <work>WEB Designer</work>
    <email>you_5214@sina.com</email>
    <phone>
    	<mobil>15959******</mobil>
    	<home>0792-7604***</home>
    </phone>
    <content>EXT实现对XML数据的加载,这里是加载的信息内容</content>
</contact>
</message>



form_xml.js

Java代码 复制代码  收藏代码
  1. Ext.onReady(function(){   
  2.     var panel = new Ext.form.FormPanel({   
  3.         width:350,   
  4.         height:320,   
  5.         animCollapse :true,   
  6.         title:'Form中载入XML数据',   
  7.         renderTo : 'form-xml',   
  8.         frame:true,   
  9.         collapsible :true,   
  10.         waitMsgTarget: true,   
  11.         reader :new Ext.data.XmlReader({   
  12.         record : 'contact',   
  13.         fields:[   
  14.           'name',   
  15.           'work',   
  16.           'email',   
  17.           {name: 'mobil',mapping:'phone/mobil'},   
  18.           {name: 'home',mapping:'phone/home'},   
  19.           'content'  
  20.             ]   
  21.     }),   
  22.         items:[{   
  23.             xtype:'fieldset',   
  24.             title:'载入XML数据',   
  25.             defaultType: 'textfield',   
  26.             autoHeight:true,   
  27.             items:[{   
  28.                 fieldLabel:'UserName',   
  29.                 name:'name',   
  30.                 anchor : '97%'  
  31.             },{   
  32.                 fieldLabel:'Work',   
  33.                 name:'work',   
  34.                 anchor : '97%'  
  35.             },{   
  36.                 fieldLabel:'E-mail',   
  37.                 name:'email',   
  38.                 anchor : '97%'  
  39.             },{   
  40.                 fieldLabel:'Mobil',   
  41.                 name:'mobil',   
  42.                 anchor : '97%'  
  43.             },{   
  44.                 fieldLabel:'Home_phone',   
  45.                 name:'home',   
  46.                 anchor : '97%'  
  47.             },{   
  48.                 xtype : 'textarea',   
  49.                 fieldLabel:'Content',   
  50.                 name:'content',   
  51.                 anchor : '97%'  
  52.             }]   
  53.         }],   
  54.         buttons:[{   
  55.             text:'加载',   
  56.             handler:function(){   
  57.                 panel.getForm().load({   
  58.                     url:'form_xml.xml',    
  59.                     waitMsg:'数据加载中.....'  
  60.                 })   
  61.             }   
  62.         },{   
  63.             text:'重置',   
  64.             handler:function(){   
  65.                 panel.form.reset();   
  66.             }   
  67.         }]   
  68.     })   
  69. })  
  70. http://www.iteye.com/topic/443113

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值