仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 770|回复: 8
打印 上一主题 下一主题

[学习教程] NET网页编程之为Asp.Net的用户控件增加相似DropDownList的下拉属性

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。在上一章中我们解说了怎样在用户控件中增加复杂属性与列举属性,链接以下:
在Asp.net中为用户控件(.ascx)增加自界说属性详解

这一章我们解说怎样为Asp.Net的用户控件增加相似DropDownList的下拉属性,以下图所示:


从图片中能够看到,WebUserControl1控件是一个用户控件,但它却能够像DropDownList控件一样,在aspx源码中设置下拉汇合项。这是怎样完成的呢?

为了节俭工夫,我们就不像上一章说的那末具体了。

起首我们新建一个WebUserControl1.ascx用户控件,为了复杂,我们就间接在该控件中放一个DropDownList控件。假如我们不为WebUserControl1.ascx控件增加任何属性,在该控件外是不克不及够为DropDownList控件增加下拉项的。

如今我们为WebUserControl1.ascx控件增加一个Items属性,它间接映照DropDownList的Items属性,属性以下:
publicListItemCollectionItems
{
get{returnthis.DropDownList1.Items;}
}

如许,我们在挪用该用户控件的aspx页的cs文件中,就能够经由过程编程的体例为DropDownList控件增加下拉项了,以下:
protectedvoidPage_Load(objectsender,EventArgse)
{
this.WebUserControl11.Items.Add(newListItem("中国银行","0"));
}

但这时候我还没法在aspx间接为DropDownList控件增加下拉项的。

如今我们为用户控件的Items属性增加一个属性,以下代码:
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
publicListItemCollectionItems
{
get{returnthis.DropDownList1.Items;}
}

解说一下下面代码的意义:
PersistenceMode:界说元数据属性(Attribute),用于指定怎样在计划时将ASP.NET服务器控件属性(Property)或事务保留到ASP.NET页
PersistenceMode.InnerDefaultProperty:指定属性在ASP.NET服务器控件中坚持为外部文本。还唆使将该属性界说为元素的默许属性。只能指定一个属性为默许属性

仅仅设置了这个属性,仍是不敷的,我们还必要为用户控件类增加一个属性:
[ParseChildren(true,"Items")]
publicpartialclassWebUserControl1:System.Web.UI.UserControl
{
}

ParseChildren:界说可在开辟ASP.NET服务器控件时利用的元数据属性。利用System.Web.UI.ParseChildrenAttribute类唆使页剖析器应怎样处置页上声明的服务器控件标志中嵌套的内容。

好了,设置完这两步,从头编译用户控件,然后再从头翻开挪用该用户控件的页面,是否是能够在aspx页面间接设置下拉汇合项了呢:)

示例控件的全体源码以下:
ascx:
<%@ControlLanguage="C#"AutoEventWireup="true"CodeBehind="WebUserControl1.ascx.cs"
Inherits="WebApplication1.WebUserControl1"%>
<asp:DropDownListID="DropDownList1"runat="server">
</asp:DropDownList>

ascx.cs:
usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;

namespaceWebApplication1
{
[ParseChildren(true,"Items")]
publicpartialclassWebUserControl1:System.Web.UI.UserControl
{
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
publicListItemCollectionItems
{
get{returnthis.DropDownList1.Items;}
}

protectedvoidPage_Load(objectsender,EventArgse)
{

}
}
}
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。
沙发
发表于 2015-1-18 13:29:21 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
admin 该用户已被删除
板凳
发表于 2015-1-24 12:06:51 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-1 10:29:05 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
小魔女 该用户已被删除
5#
发表于 2015-2-7 04:45:53 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
小女巫 该用户已被删除
6#
发表于 2015-2-20 14:27:38 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
只想知道 该用户已被删除
7#
发表于 2015-3-6 18:24:22 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
透明 该用户已被删除
8#
发表于 2015-3-13 06:37:32 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
山那边是海 该用户已被删除
9#
发表于 2015-3-20 15:56:03 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-23 10:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表