对ASP.NET自定义控件的内部实现较为失望~~~~

michaelpeng7799 2003-08-20 12:09:48
protected override void OnPreRender(EventArgs E)
{
StringBuilder DHTMLFunction = new StringBuilder();

DHTMLFunction.Append( "<script language='JavaScript'> \n" );
DHTMLFunction.Append( " function drawcalendar(calname, newDate) \n" );
DHTMLFunction.Append( " { \n" );
DHTMLFunction.Append( " var CurrentDate = new Date(newDate);\n" );
DHTMLFunction.Append( " var MonthArray = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');\n" );
DHTMLFunction.Append( " var MonthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);\n" );
DHTMLFunction.Append( " var calText;\n" );
DHTMLFunction.Append( " calText = '<table bgcolor=#dcdcdc border=0 height=190 valign=top>';\n" );
DHTMLFunction.Append( " calText = calText + '<tr><td>';\n" );
DHTMLFunction.Append( " calText = calText + '<center>';\n" );
DHTMLFunction.Append( " calText = calText + \"<a href='javascript:drawcalendar(\\\"\" + calname + \"\\\", \\\"\" + CurrentDate.getFullYear() + \"/\" + CurrentDate.getMonth() + \"/\" + CurrentDate.getDate() + \"\\\")'>\";\n" );
DHTMLFunction.Append( " calText = calText + '<img src=/quickstart/aspplus/images/left4.gif width=11 height=11 border=0></a>';\n" );
DHTMLFunction.Append( " calText = calText + ' <b>' + MonthArray[CurrentDate.getMonth()] + ' ' + CurrentDate.getFullYear() + '</b>';\n" );
DHTMLFunction.Append( " calText = calText + \" <a href='javascript:drawcalendar(\\\"\" + calname + \"\\\", \\\"\" + CurrentDate.getFullYear() + \"/\" + (CurrentDate.getMonth() + 2) + \"/\" + CurrentDate.getDate() + \"\\\")'>\";\n" );
DHTMLFunction.Append( " calText = calText + '<IMG SRC=/quickstart/aspplus/images/right4.gif width=11 height=11 border=0></a>';\n" );
DHTMLFunction.Append( " calText = calText + '</center>';\n" );
DHTMLFunction.Append( " calText = calText + '</td></tr>';\n" );
DHTMLFunction.Append( " calText = calText + '<tr valign=top><td valign=top>';\n" );
DHTMLFunction.Append( " calText = calText + '<table border=1 bgcolor=#eeeeee height=160>';\n" );
...............
看到了,内部最后还是通过javascript来实现,我不太喜欢写javascript,而且这里还不是直接写,类似这样的方法: DHTMLFunction.Append( "<script language='JavaScript'> \n" ); 把javascript当字符串,这样传到客户那是是javascript。原来在asp里也这么用过,这个方式及为不便。

不知在java里jsp在实现自定义控件类似功能时是用什么方法做的??听说有自定义的taglib,不过没具体用过,哪位给讲讲,是否是更好的实现方法???

...全文
36 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
michaelpeng7799 2003-08-22
  • 打赏
  • 举报
回复
没人粘就结粘子了。
hj12 2003-08-20
  • 打赏
  • 举报
回复
jsp中的控件,可以是BEAN,也可以是自己定义的标签,用标签可以使页面简洁,也更适合
网页的设计者!但要在容器中配置,不知道.net是如何实现的讲一下,看看那种更好
flyycyu 2003-08-20
  • 打赏
  • 举报
回复
也是一样的,ASP.net控件的精华是服务器端回写!
michaelpeng7799 2003-08-20
  • 打赏
  • 举报
回复
有用过jsp相关功能的请粘一段有代表性的代码出来,对比一下。
gboy2003 2003-08-20
  • 打赏
  • 举报
回复
up
!
第1章 服务器控件概述及开发环境部署 .1 1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程中的作用 1 1.3 在控件开发中提升自己 2 1.4 可继承控件基类介绍 2 1.5 运行一个简单的控件 7 1.5.1 开发一个简单控件 7 1.5.2 部署和运行 11 1.6 控件生命周期 12 1.6.1 概述 12 1.6.2 用代码跟踪控件生命周期过程 14 1.7 本章总结 17 第2章 服务器控件开发中的调试技术 18 2.1 预置代码示例 18 2.2 调试页面服务端代码 19 2.3 服务器控件的调试 20 2.3.1 运行模式下的调试方法 20 2.3.2 设计模式下的调试方法 20 2.4 javascript脚本调试方法 22 2.4.1 调试页面中的javascript脚本(方法一) 22 .2.4.2 调试页面中的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 2.4.4 调试嵌入式javascript脚本资源文件 24 2.4.5 高效率调试的技巧 24 2.5 ajax library对javascript调试支持 26 2.6 本章总结 26 第3章 从零开始开发服务器控件 27 3.1 选择基类 27 3.2 控件呈现顺序 28 3.3 render呈现控件的几种方式 30 3.3.1 使用htmltextwriter类输出 30 3.3.2 直接输出html标签 32 3.3.3 使用服务器控件的rendercontrol方法 33 3.4 addattributestorender方法 34 3.5 createchildcontrols方法 35 3.6 inamingcontainer接口 36 3.7 实现复合控件 38 3.7.1 createchildcontrols方法 39 3.7.2 childcontrolscreated属性 39 3.7.3 ensurechildcontrols方法 39 3.7.4 recreatechildcontrols方法 39 3.7.5 controls属性 40 3.7.6 hascontrols方法 40 3.7.7 hasevents方法 40 3.7.8 findcontrol方法 41 3.7.9 实现复合控件示例 41 3.8 常用开发技巧 51 3.8.1 designmode属性 51 3.8.2 屏蔽基类控件中的属性 52 3.8.3 page.request.browser属性 53 3.8.4 设置控件id规范 53 3.8.5 增强findcontrol功能 54 3.8.6 映射服务端控件值到客户端 55 3.8.7 禁止派生自compositecontrol的控件创建子控件 56 3.8.8 使用createchildcontrols的注意事项 56 3.8.9 不要误解设计元属性defaultvalue 57 3.8.10 在render方法中利用基类资源 57 3.8.11 条件编译&条件属性 60 3.9 本章总结 61 第4章 服务器控件属性 62 4.1 控件属性的作用 62 4.1.1 系统属性 62 4.1.2 自定义属性 62 4.2 简单属性 63 4.3 属性的设计时特性 64 4.4 复杂属性 67 4.4.1 概述 67 4.4.2 复杂属性的几种标记形式 67 4.4.3 深入研究——复杂属性分析器 79 4.5 深入研究——定制自己的属性编辑器 85 4.5.1 系统属性编辑器 85 4.5.2 定制属性编辑器 91 4.6 类型转换器 126 4.6.1 系统类型转换器 126 4.6.2 定制自己的类型转换器 128 4.7 实现自定义属性 138 4.8 本章总结 145 第5章 事件和数据回发机制 146 5.1 控件事件和数据回发概述 146 5.1.1 事件及其意义 146 5.1.2 数据回发机制 147 5.2 事件和数据回发机制的实现 148 5.2.1 客户端回传事件接口ipostbackeventhandler 148 5.2.2 客户端回发/回调揭密 150 5.2.3 回传数据处理接口ipostbackdatahandler 153 5.2.4 正确处理继承基类中控件的事件 159 5.2.5 扩展kingtextbox控件功能(kingtextboxcanpostevent控件) 161 5.3 复合控件的事件处理机制

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧