zoukankan      html  css  js  c++  java
  • Flex 一周视频培训系列学习笔记(一)

    使用Http Service 获取数据

    先用asp.net mvc构建数据源.

    这个是作了修改的MvcContrib下的XmlResult代码.用来返回Northwind 数据库下的Employee数据.格式为xml

    using System.Web.Mvc;
    using System.Xml.Serialization;
    using System.Data;
    namespace MvcContrib.ActionResults
    {
        /// <summary>
        /// Action result that serializes the specified object into XML and outputs it to the response stream.
        /// <example>
        /// <![CDATA[
        /// public XmlResult AsXml() {
        ///        List<Person> people = _peopleService.GetPeople();
        ///        return new XmlResult(people);
        /// }
        /// ]]>
        /// </example>
        /// </summary>
        public class XmlResult : ActionResult
        {
            private object _objectToSerialize;
            private ObjectType _type;
            /// <summary>
            /// Creates a new instance of the XmlResult class.
            /// </summary>
            /// <param name="objectToSerialize">The object to serialize to XML.</param>
            public XmlResult(object objectToSerialize)
            {
                _objectToSerialize = objectToSerialize;
                _type = ObjectType.Object;
            }
            public XmlResult(object objectToSerialize, ObjectType type)
            {
                _objectToSerialize = objectToSerialize;
                _type = type;
            }
            /// <summary>
            /// The object to be serialized to XML.
            /// </summary>
            public object ObjectToSerialize
            {
                get { return _objectToSerialize; }
            }
    
            /// <summary>
            /// Serialises the object that was passed into the constructor to XML and writes the corresponding XML to the result stream.
            /// </summary>
            /// <param name="context">The controller context for the current request.</param>
            public override void ExecuteResult(ControllerContext context)
            {
                if (_objectToSerialize != null)
                {
                    context.HttpContext.Response.ContentType = "text/xml";
                    switch (_type)
                    {
                        case ObjectType.DataSet:
                            DataSet ds = _objectToSerialize as DataSet;
                            ds.WriteXml(context.HttpContext.Response.OutputStream);
                            break;
                        case ObjectType.DataTable:
                            DataTable dt = _objectToSerialize as DataTable;
                            dt.WriteXml(context.HttpContext.Response.OutputStream);
                            break;
    
                        default:
                            var xs = new XmlSerializer(_objectToSerialize.GetType());
                            xs.Serialize(context.HttpContext.Response.Output, _objectToSerialize);
                            break;
                    }
    
                }
            }
            public enum ObjectType
            {
                DataSet,
                DataTable,
                Object
            }
        }
    }

    新建controller 并写以下action

     public XmlResult GetXmlEmployees()
            {
                DataSet ds = Gateways.Northwind.Select(Tables.Employees,Tables.Employees.EmployeeID,Tables.Employees.Address,
                    Tables.Employees.BirthDate,Tables.Employees.City,Tables.Employees.Country,Tables.Employees.EmployeeID,
                    Tables.Employees.FirstName,Tables.Employees.LastName,Tables.Employees.Notes,Tables.Employees.PhotoPath)
                .SetSelectRange(40, 0, Tables.Employees.EmployeeID)
                .ToDataSet();
                ds.DataSetName = "Employees";
                ds.Tables[0].TableName = "Employee";
                return new XmlResult(ds, XmlResult.ObjectType.DataSet);
            }

    数据已准备OK

    image

    下面写mxml,代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="employeeService.send()" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.rpc.events.ResultEvent;
            import mx.collections.ArrayCollection;
            
            [Bindable]
            private var employeeData:ArrayCollection;
            private function resultHandler(event:ResultEvent):void{
                // Http Service resultFormat property
                // Possible formats 
                // object, xml, flashvars, text, e4x, array;
                employeeData = event.result.Employees.Employee;
            }
            // Flex list-based controls:
            // DataGrid, List, Tree, Menu, TileList and HorizontalList
        ]]>
    </mx:Script>
        <mx:HTTPService id="employeeService" url="http://localhost:1819/Employee/GetXmlEmployees"
             result="resultHandler(event)" requestTimeout="60">
            
        </mx:HTTPService>
        <mx:DataGrid dataProvider="{employeeData}" width="100%" height="100%" />
    </mx:Application>

    Demo完成!!

    image

  • 相关阅读:
    随机-byte编码
    dataframe骚操作,待续
    oracle中的rowid
    java提高篇-----理解java的三大特性之继承
    staruml使用教程
    黑马程序员:HTML习题1
    Cocos2d-x-->CCSprite 动画
    地址栏传参中文乱码详解
    Qt学习第二天
    Lync 2010 升级到2013 之部署2013前端服务器!
  • 原文地址:https://www.cnblogs.com/OtisBlog/p/1397149.html
Copyright © 2011-2022 走看看