arcgis flexviewer所有的小部件类均继承自com.esri.viewer.BaseWidget基类,而BaseWidget又继承了com.esri.viewer.IBaseWidget接口。所有的小部件又由WidgetManager类进行管理。因此,要实现从Application向widget传值,需要经由WidgetManager完成。例如,用户登录时记录了用户名,在widget中需要对用户名进行验证,可通过下述步骤将用户名(字符串)传递到所有的继承了上述小部件基类的widget中。

1、修改IBaseWidget接口文件,增加下述函数定义:

function set userName(value:String):void;
function get userName():String;

2、在基类BaseWidget中实现上述方法:

private var _username:String;

[Bindable]
public function get userName():String
{
return _username;
} public function set userName(value:String):void
{
_username = value;
}

3、按照上述方法,在WidgetManager中定义相关的变量和属性存取器,如下:

private var user_name:String;

[Bindable]
public function set userName(value:String):void
{
user_name = value;
}
[Bindable]
public function get userName():String
{
return user_name;
}

4、假设Application中(一般为主页)有一个名为userNameStr的字符串变量,在WidgetManager的MXML声明中做如下定义:

<viewer:widgetManager>
<managers:WidgetManager id="widgetManager" userName="{userNameStr}"/>
</viewer:widgetManager>

5、在WidgetManager类的createWidget函数中,在widget.map = map;语句之后添加下述代码:

widget.userName = this.userName;

6、测试。用户名为admin,在小部件中添加:

Alert.show("Widget: " + this.userName);

执行相关代码,可见到来自小部件的消息框:

DONE.

arcgis flexviewer中由Application向widget传值的更多相关文章

  1. [转载]ArcGIS Engine 中的多线程使用

    ArcGIS Engine 中的多线程使用 原文链接 http://anshien.blog.163.com/blog/static/169966308201082441114173/   一直都想写 ...

  2. ArcGIS Engine 中的多线程使用

    转自原文ArcGIS Engine 中的多线程使用 一直都想写写AE中多线程的使用,但一直苦于没有时间,终于在中秋假期闲了下来.呵呵,闲话不说了,进入正题! 大家都了解到ArcGIS中处理大数据量时速 ...

  3. ArcGIS engine中Display类库 (局部刷新)

    转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库 ...

  4. ajax中的POST和GET传值

    ajax中的POST和GET传值 转自:http://www.cnblogs.com/jtome/archive/2008/12/04/1347864.html Ajax中我们经常用到get和post ...

  5. ArcGIS Engine 中的多线程使用[转载]

    一直都想写写AE中多线程的使用,但一直苦于没有时间,终于在中秋假期闲了下来.呵呵,闲话不说了,进入正题!         大家都了解到ArcGIS中处理大数据量时速度是相当的慢,这时如果你的程序是单线 ...

  6. ArcGIS Engine中的8种数据访问 (转)

    数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...

  7. ArcGIS Engine中的数据访问

    ArcGIS Engine中的数据访问 数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文 ...

  8. MVC中视图View向控制器传值的方法

    MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮

  9. ajax中的application/x-www-form-urlencoded中的使用

    ajax中的application/x-www-form-urlencoded中的使用一,HTTP上传的基本知识 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定 ...

随机推荐

  1. [转]oracle pump expdp impdp使用

    用expdp或impdp命令时, 可暂不指出用户名/密码@实例名 as 身份, 然后根据提示再输入,  如:     expdp schemas=scott DIRECTORY=dpdata  dum ...

  2. java基础知识分析: final , finally,finalize

    final final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方 ...

  3. 《Linux内核设计与实现》读书笔记(十三)- 虚拟文件系统

    虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备. 虚拟文件系统本身是linux内核的一部分,是纯软件 ...

  4. [转]新兵训练营系列课程——平台RPC框架介绍

    原文:http://weibo.com/p/1001643875439147097368 课程大纲 1.RPC简介 1.1 什么是RPC 1.2 RPC与其他远程调用方式比较 2.Motan RPC框 ...

  5. 解决dnu restore时的“Cannot handle address family”问题

    前几天在使用基于 mono 的 dnx 中的 dnu restore 命令安装 nuget 包包时,遇到了 “Cannot handle address family” 错误,错误详情如下: Cann ...

  6. node-webkit教程(14)禁用缓存

    1.在开发者工具中禁用缓存 上面这张图,是在node-webkit 中 在开发工具中配置禁用缓存的选项. 使用这个选项可以有效的禁用所有页面缓存. 2. 在配置文件中,配置webkit 缓存禁用和启用 ...

  7. SQLSERVER--定期清理维护作业的历史记录

    刚删除一个数据库时,在清理数据库备份历史记录时,执行超过近10分钟还未完成,随时查了下,吓死宝宝啦,逻辑读操作竟然高达8000万次以上! 通过UI进行删除数据库时,会默认勾选上“删除数据库备份和还原历 ...

  8. TfS+强制删除签出锁定项

    1.连接到tfs数据库服务器的tfsversioncontrol库: 2.查tbl_workspace表,找出相应的工作目录,比如 select * from tbl_workspace where ...

  9. memcached(二)事件模型源码分析

    memcachedd事件模型 在memcachedd中,作者为了专注于缓存的设计,使用了libevent来开发事件模型.memcachedd的时间模型同nginx的类似,拥有一个主进行(master) ...

  10. [OpenCV] 3、直线提取 houghlines

    >_<" 发现一个好的链接,是一个讲openCV的网站:http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html > ...