[翻译]在asp.net 2.0中使用WebParts
[译者改后代码下载]
原文发布日期:2007.03.01
作者:Abdul Sami
翻译:webabcd
介绍
如果说WebParts是web中一个非酷的效果的话,我想没有人会怀疑。WebParts为我们提供了对页中的对象进行拖拽的功能,它也可以在runtime的时候改变对象的标题、边框样式等。在WebParts出现之前,要实现这个功能是一项令人非常头痛的工作,因为我们必须写大量的JavaScrip,还要把页中每个对象的状态保存到数据库中。
WebParts有两个基本的东东
·WebPartManager
·WebPart Zones
WebPartManager用来管理所有的webparts。如果你想在你的web站点中使用webparts就必须要使用WebPartManager。它的作用是提供你在页中进行拖拽的JavaScript代码
WebPart Zones
WebPart Zones中有4个zone
·WebPartZone
·EditorZone
·CatalogZone
·ConnectionZone
WebPartZone
WebPartZone是webparts里最基本的单位。通过在WebPartZone里放置不同的内容,我们就能够允许用户在页上对其进行拖拽。你可以在你的页上增加一个DropDownList以实现使用不同zone的功能,该DropDownList的选项如下
·Browse
·Design
·Edit
·Catalog
·Connect
在DropDownList的SelectedIndexChanged事件里粘贴如下代码(这里假设DropDownList的id是“cmbOptions”,WebPartManager的id是“WebPartManager1”)
{
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;
}
else if (cmbOptions.SelectedValue == "Browse")
{
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
}
else if (cmbOptions.SelectedValue == "Catalog")
{
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
}
else if (cmbOptions.SelectedValue == "Edit")
{
WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;
}
else if (cmbOptions.SelectedValue == "Connect")
{
WebPartManager1.DisplayMode = WebPartManager.ConnectDisplayMode;
}
Browse mode是webparts的默认模式。在Browse mode中虽然我们不能拖拽webpart,但是可以在webpart上看到两个选项,最小化和关闭。最小化一个webpart会显示它的最小化状态,如果选择关闭的话我们就只能在Catalog mode下重新恢复它,稍后我们会讨论它。这里有一个Browse mode下简单的webpart的图例
在Design mode中我们就可以在两个webpart对象间进行拖拽了。我这里有两个webpart,分别被命名为“Links”和“Search”。下图示例了把“Links”拖拽到“Search”的情况
Edit Mode允许你在runtime中编辑webpart。编辑webpart是一个比较深层次的应用,它分为4个类型:Appearance、Behavio、Property和Layout。我们首先来看看如何使用Appearance和LayoutEditorPart
Appearance和LayoutEditorPart
首先在web form上放置一个EditorZone。然后在EditorZone里放置一个AppearanceEditorPart和LayoutEditorPart。运行这个程序,从DropDownList中选择编辑模式。在可用的webpart上单击菜单的编辑按钮。
PropertyGridEditorPart
通过使用属性编辑器我们可以改变webpart中对象的属性。在我们的例子中将示例如何改变对象的CssClass属性。我们将用与解释AppearanceEditorPart和LayoutEditorPart相同的方法来说明它
在webform上放置一个EditorZone。然后在EditorZone里放置一个PropertyGridEditorPart。为了使用EditorZone我们需要在你的项目里新增一个用户控件。在这个用户控件里放置一个TextBox,然后再把这个用户控件放到web form的webpart里。该用户控件的后置代码如下
[WebBrowsable(), Personalizable(true)]
public string CssClass
{
get { return _cssClass; }
set { TextBox1.CssClass= value; }
}
protected void Page_Load(Object sender, EventArgs e)
{
TextBox1.CssClass = CssClass;
}
·WebBrowsable - 允许webpart在编辑模式中显示用户定义的属性
·Personalizable - 允许属性是可编辑的
现在运行这个页。如果我们设置了WebPartManager为编辑模式的话,就将会看到webpart的菜单选项中出现了编辑按钮。截屏如下
Catalog mode
Catalog mode给我们提供了在运行时添加和移除webpart的选项。例如,如果我们有一些模块,如天气模块、新闻模块、购物模块和占卜模块等等。如果想在运行时给用户提供显示和隐藏这些模块的选项,我们就可以使用Catalog mode来完成这项任务。
CatalogZone
CatalogZone分为3个类型,分别是PageCatalogPart、DeclarativeCatalogPart和ImportCatalogPart。在webform上增加一个CatalogZone,然后在CatalogZone内添加之前提到的3个类型。当webpart被关闭后我们可以用PageCatalog来帮我们来显示webpart,截屏如下:
转载于:https://blog.51cto.com/webabcd/345062
[翻译]在asp.net 2.0中使用WebParts相关推荐
- [翻译]在Asp.net 2.0中操作数据::母板页和站点导航
在Asp.net 2.0中操作数据::母板页和站点导航 英文原文 | 下载示例代码(C#) | 翻译进度 | 英文教程目录 导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和 ...
- 在ASP.NET 2.0中操作数据教程系列
在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...
- 怎么在ASP.NET 2.0中使用Membership
摘要: 本文介绍了怎么在ASP.NET 2.0中使用Membership新特性,并且介绍了怎么两种不同的Membership的Provider:ActiveDirectoryMembershipPro ...
- 在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改 ...
- asp.net 2.0中设定默认焦点按钮
在asp.net 1.1中,当要在page_load页面中,设置某个控件为默认的焦点按钮(也就是默认焦点是在这个控件上的),可能要用到javascript的代码,而在ASP.NET 2.0中,不用这些 ...
- asp.net 2.0中的弹出对话框
在asp.net 1.1中,要做1个弹出的对话框的话,一般是在服务端的代码中这样写: btnClick.Attributes.Add("onclick", "return ...
- 在ASP.NET 2.0中建立站点导航层次
站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你 ...
- asp.net 2.0中一次性更新所有GRIDVIEW的记录
在asp.net 2.0中,gridview控件是十分不错的控件.有的时候,可能一个GRIDVIEW控件中 的各行都是文本框,如何一次性更新所有修改过的记录呢?有两种方法,一种是使用sqldataso ...
- asp.net 2.0 中GridView里设置日期格式
在asp.net 1.0 中的datagrid 中 设置日期字段格式时用 DataFormatString="{0:yyyy-MM-dd}"即可. 在gridview 中设置 ...
最新文章
- Java程序 实验小全
- Docker run 命令【转】
- Linux驱动调试中的Debugfs的使用简介 CONFIG_DEBUG_FS 的功能与配置
- 广州测试沙龙的问题。
- xss攻击突破转义_每个人都应该了解的7种xss漏洞
- TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
- 小型oa服务器系统,大型、中小型企业OA系统实施差异对比
- DOS+DNS放大攻击工具编写
- 浅谈物联网的关键技术和难点
- 内网通道构建——socks
- 开关控制灯实验C语言编程,指示灯开关控制器实验.doc
- 微信气泡主题设置_微信猫和老鼠主题皮肤怎么设置 华为手机设置气泡主题方法...
- Ubuntu 安装源及初始配置
- 八年级作文-面对天空
- Vue高仿网易云网页端源码
- 干游戏还是大屏爽!送一台27寸高清显示器!直接包邮到家!
- 【重要】Arrhythmia classification 心律失常大专题
- 基于51单片机的软件IIC详细讲解
- 社保基金持有26股数量超1000万股
- Wgcloud安装和使用(性能监控)
热门文章
- 2016年软考网络工程师考试命题范围变化之网络设备配置与复习技巧
- who,cut,diff,which,whereis,locate,updatedb 命令的使用
- URAL 7077 Little Zu Chongzhi's Triangles(14广州I)
- 关于把程序添加到打开方式的解决办法
- matlab人脸追踪,求大神帮助我这个菜鸟解决一下人脸跟踪这个程序的一些问题啊!!...
- 二进制地址的伙伴地址
- 真人3D Avatar
- 行人检测资源综述文献
- 嵌入式ARM多核处理器并行化方法
- 纯CSS实现立方体旋转