没有合适的资源?快使用搜索试试~ 我知道了~
用Visual-C.NET编写服务器日期控件.docx
0 下载量 169 浏览量
2022-12-15
23:26:55
上传
评论
收藏 40KB DOCX 举报
温馨提示
试读
16页
用Visual-C.NET编写服务器日期控件.docx
资源推荐
资源详情
资源评论
用Visual C#.NET编写服务器日期控件一、序言
Visual C#.nel是微软公司出品的一种新的编程语言(以下简称C#),它继承了 C 语言的一些特性,
也加入了一些新的元素。以前用过Delphi开发程序的人可能刚开始 使用C#的时候,对其有•种似曾
相识的感觉(至少包括我)。是的,C#语言的创始人正 是以前在Borland公司开发出Delphi语言的
Anders Hejlsbergo在我开始使用C#开发 程序时,就觉得它是一款很棒的开发Windows Form & Web
程序的RAD工具。
在开发Web程序方面,C#的出现打破了以前的网页开发模式,实现了与开发Windows
Form程序一样的所见即所得的功能。C#提供了一些常用的Web Form Control供开 发人员使用,
并且只需将控件拖入页面中即可,非常简单。但有时这些控件也不能满足 开发人员的需要,需要开
发人员自己编写用户控件(User Control)或自定义控件(Custom Control)来满足需求。在这里,我将讲
解如何在C#中开发服务器控件。
二、预备知识
在C#中可以开发两种服务器控件,一个是用户控件(UserControl)和自定义控件 (Custom
Control) o用户控件的本质与页面文件(ASPx文件)差不多,是可被其它 aspx页面重复使用的HTML
代码段,当然它也包括后台代码(Code-behind),后缀名是 asexo所以在开发一些公用的静态页面时
(例如页头,页脚)经常用到,但它的缺点是 不易继承,不易分发,无法编译成二进制代码来进行
部署。但是白定义控件的功能就强 大许多,它可以被编译成二进制代码(DLL文件),可以被扩展、
继承、分发。就像Web Form Control 一样,其实它们每个控件就是一个DLL文件。
开发用户控件比拟简单,就像编写一个aspx页面一样,在这里就不介绍了。本文 对象是自定
义控件。服务器控件的基类是System. Web. UI. Control。如果要开发可视化 的服务器控件,那我们
需要从System. Web. UI. WebControls来继承,否那么从 System. Web. UI. Control 继承。
output. AddAttribute(HtmlTextWriterAttribute. Name, DatePickerButtonName);output.
AddAttributc(HtmlTcxtWri tcrAttributc. Value, ButtonTcxt):
output. .AddStyleAttributeCHtmlTextWriterStyle. Width, "100$");output.
AddAttributedltmlTextWri terAttribute. Oncl ick,
Page. GetPostBackEventReference(this)): 〃点击按钮时需要回传服务器来触发后面的 OnClick 事件
output. .
i
\dd/\ttribute(HtmlTextWriterAttribute. Style, ButtonStyle):
output. RenderBcginTag(HtmlTextWriterTag. Input); //输出按钮output. RenderEndTagO ;
output. RenderEndTagO ;output. RenderEndTagO ;
output. RenderBeginTag(HtmlTextWriterTag. Tr);output. AddAttributeOltmlTextWri
terAttribute. Col span, "2");
output. RenderBeginTag(HtmlTextWriterTag. Td);Calendar. RenderControl (output); 〃将日历
子控件输出
output. RenderEndTagO ;output. RenderEndTagO ;
output. RenderEndTagO ; )
〃复合控件必须继承IpostBackEventHandler接口,才能继承RaisePostBackEvent事件public void
RaisePostBackEvent(string cvcntArgumcnt) (
OnClick(EventArgs. Empty);
)protected virtual void OnClick(EventArgs e) (
〃点击选择日期按钮时,如果日历子控件没有显示那么显示出来并将文本框的值赋值给日 历
子控件
if (_Calendar. Attributes[^display*] != (Calendar. SelectedDate = DateTime. Parse(Text):
—Calendar. Style. Add ("display",;)
)
〃复合控件中的日历控件日期变化事件
private void Calendar .SelectionChanged(object sender, EventArgs e)〃中选择的日期变化时,
将所选日期赋值给文本框并将日历子控件隐藏
Text = _Calcndar. SclcctedDatc. ToStringO ;_Calendar. Style. Add("display","none");
)
} }
在上面的代码中,需要注意以下几点:
• 如果你想将此控件的某些属性供重载,那么在声明属性前加上virtual关键字;
• 在页面输出此控件时(即在Render事件中),是先定义子控件的样式或属性, 然后再产生
子控件;
• 在隐藏日历子控件时,建议不要使用Visible属性来显示/隐藏,使用 Visible=false隐藏时
服务器端将不会将口历控件HTML代码发送给客户端,会导致复合 控件装载日历控件的表格会空
白一块出来,影响页面的布局。所以使用样式 display:none设置来使日历控件在客户端隐藏,但是
HTML代码依然存在于页面中;
K*决方寞资>»?告整器野屋性
四、结束语
在编写服务器控件时,需要一定的HTML语言基础,也要清楚.NET程序的请求处理 方式。服务
器控件封装了客户端行为及逻辑判断,无需开发者添加更多代码。当然,有 些地方使用服务器控件
可以带来方便,但是也增加了服务器的负荷。有时适当的结合JavaScript使一些代码在客户端运行,可
提高WEB应用程序效率。 附录资料:
不需要的可以自行删除Abstract: Based on the comprehensive
analysis on the plastic part's structure service requirement, mounding quality and mould menu
factoring cost. A corresponding injection mould of internal side core pulling was designed. By
adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of
internal side core pulling was designed, the working process of the mould was introduced
C语言详解-枚举类型
B CK)
48Px
Mh
136PM
□注第
(DdtaBndir^)
□
外,
BdckCotor BxderCdcr Bordet **
Border MMth
ftXtorGtyte
BORD€R RIGHT: gray IpM soM; B
ButtonText
Ma
D^eFcrm^
lonjpMeTwne
Q Ry*
ForeCdor
□
Text
200S-12-01
日行为
AccessKey
EnaUed
True
En4deV5ev6tate
True
Tabindex
0
ToolTp
VHit4e
True
日奈厚
DatrPKkrrl
3 WrbForml - Microsoft Internet Explorer
文件© 物睚)S9W 4URCA) XJKD 帮助(mf J
8后退・• • © @ GI ◎披案力收♦夹
地址(Q),Imcdhost/TestWob/TosKontrd.ospx T ~转到 播接“
[2005-12-2
2005年 12月
星明日星期一星期二星u三星m四
星期五星期六
9
成
及
致
叁
152222
zll212a
叁
心
阳
2Z
5121281
4111825
福完毕
就本地intranet
偿性。三
DatePKketl AQjdCatenda MtePHw
瓦%回刃H
Text
设置该日m按丽B
・
剩余15页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3681
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功