您的位置:首页 > 其它

关于Intraweb的几点总结

2008-08-26 09:29 204 查看
1、可以添加JavaScript事件代码的组件及其注意事项
IntraWeb版本:5.0
不难发现,IntraWeb的标准组件大多提供了服务器端运行的事件,如TIWButton就提供了OnClick事件。然而,如果在这样的事件中处理逻辑,会引发页面的刷新,即不必要的服务器。当不需要与服务器端交互时,我们就可以用到一些组件的ScriptEvents属性,添加自定义的JavaScript来处理这样的事件,而不刷新页面。
1) 提供了ScriptEvents属性的标准组件。
注:下面给出的组件列表基于IntraWeb 5 for Delphi7。
TIWButton,TIWCheckBox,TIWComboBox,TIWEdit,TIWFile,TIWImage,TIWImageFile,TIWListBox,TIWLink,TIWMemo,TIWUrl
2) 2点要注意的
第一, Sender参数的应用。
JavaScript事件的处理函数,均通过参数ASender来指代触发事件的页面组件对象。所以在书写的JavaScript代码中要访问该对象时,就要用到ASender了。
第二, 对页面组件的引用。
如果要在JavaScript中用到页面中组件,不能像Delphi中直接通过名称来访问,而需通过下面的方式:
document.getElementById(“[组件名称]”)
也就是说,在执行时,组件会被翻译成id属性为设计期给定的组件名称的HTML元素,且在HTML中组件名称都是大写。
但也有例外,如TIWRegion,你在HTML代码中是找不到以它的名称命名的页面元素的,事实上,TIWRegion和TIWRectangle都是被翻译成Table的,而TIWRegion对象,则是按顺序被翻译成“TIWRECTANGLE[序号]”,如我们在设计期的窗体上放置3个TIWRegion组件,分别命名为“iwrSample1”,“iwrSample2”和“iwrSample3”,则它们在HTML代码中就变成了下面的样子:
<table id="TIWRECTANGLE1">
<tr>
<td></td>
</tr>
</table>
<table id="TIWRECTANGLE2">
<tr>
<td></td>
</tr>
</table>
<table id="TIWRECTANGLE3">
<tr>
<td></td>
</tr>
</table>
2、对bnPYSse《Intraweb学习笔记》中提到的“模板文件”问题的补充
谈到Intraweb,bnPYSse的《学习笔记》在网上比较“出名”,下面是对他提到的模板文件问题的一点补充。
IntraWeb版本:5.0
bnPYSse提到,模板文件的名称必须与窗体名称相同且扩展名必须为“.html”,这是欠妥的。因为我们应用模板文件必须通过TIWTemplateProcessorHTML,而该组件的属性Templates就提供了灵活配置模板文件的途径,该属性有3个分项:
Default-默认模板的名称
IE-IE浏览器下模板的名称
Netscape6-Netscape6浏览器下模板的名称
由此可见,IntraWeb不但提供了自定义模板名称的方法,而且还提供了适应不同浏览器的途径。当然,如果不对该属性进行设置的话,bnPYSse说法还是正确的。
另外,关于模板文件的标签,对于TIWRegion对象,在模板文件中是无法自动解析的。需要通过TIWTemplateProcessorHTML的OnUnknownTag事件来处理。
3、TreeView的问题
IntraWeb版本:5.0
5.0版本的TIWTreeView存在下面几点缺陷:
1) 刷新问题:节点单击总要刷新页面,不提供客户端JavaScript事件的处理,且刷新后不保留树的状态,如本来合起来的节点,会再一次打开。
2) 大小问题:当页面大小改变时,树的工作空间不会改变,即使设定了Anchors属性。注:这些问题在最新版本(9.0)的IntraWeb中都得到了解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: