这种功能如何实现?(50分)

  • 主题发起人 主题发起人 herui
  • 开始时间 开始时间
H

herui

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用intraweb作一个信息管理系统,需要录入一些word文档及excel表格之类的文档信息。但在intraweb中没有选择文件对话框控件,只有iwfile控件,这个控件既不美观又不方便。我在页面中添加了几个标签,如年度总结、财务分析等等,能否点击“年度总结”标签就自动激活文件选择对话框或iwfile控件来选择文件路径?
 
1、出于安全的考虑,除非通过<input type=&quot;file&quot; >元素,IE不允许页面直接访问本地文件(ActiveX是另外一回事),因此,只好使用iwfile或者IWDBFile(它们都是对应<input type=&quot;file&quot; >)。
2、用脚本弹出<input type=&quot;file&quot; >的对话框。
<input type=&quot;file&quot; >的对话框是在点击时弹出的,因此用脚本调用其click应该能够弹出对话框。例:
<input type=&quot;file&quot; name=&quot;file1&quot;>
<input type=&quot;button&quot; name=&quot;button1&quot; value=&quot;按钮&quot; onClick=&quot;file1.click()&quot;>
其中file1对应你的某个iwfile,代码“file1.click()”写在某个控件的ScriptEvents的OnClick事件里即可。
注意,javascript区分大小写。
 
进一步,为了美观。
的确,iwfile不怎么漂亮,我们是否可以隐藏掉它?当然可以。只要它的style属性包含这些内容即可:visibility:hidden。这样丝毫不影响它的功能,也不影响别的代码访问它。
从用户的角度考虑,用户还是希望页面上显示出他选择的文件,这时可以用代码取出iwfile的文件名,这样的话原来的脚本修改成这样:
file1.click();text1.value=file1.value;
我想这样基本上就解决了美观的问题。

一定要注意的是,文件上载一定是通过iwfile(即<input type=&quot;file&quot; >)进行的,而且一个iwfile一次只能上载一个文件。
 
to yeskert1 惭愧得很,我是刚接触intraweb,很多方面要向你请教了。我照你说的,新建一个项目,在表单上添加一个iwbutton和iwfile,然后在iwbutton的ScriptEvents onclick事件中打入代码<input type=&quot;file&quot; name=&quot;iwfile1&quot;>和代码
<input type=&quot;button&quot; name=&quot;button1&quot; value=&quot;按钮&quot; onClick=&quot;iwfile1.click()&quot;>运行程序点击button均不起作用,是什么原因呢?另外,你说javascript区分大小写,是指哪里应该大写?
 
是这样:
iwfile1在页面上输出的名称可能是IWFILE1。
在iwbutton1的ScriptEvents onclick里打入IWFILE1.click()就行了。
(或者:IWFILE1.click();IWEDIT1.value=IWFILE1.value)
 
问题仍未解决,iwfile好象没有click()事件和value属性。问题虽然未解决,还是感谢你的热情帮助。
 
兄弟,我说的click事件和value属性不是delphi里的事件和属性,而是浏览器里对应的HTML元素的事件和属性。
IWFILE1.click();IWEDIT1.value=IWFILE1.value;
这一行是写在iwbutton1的ScriptEvents onclick里的。
要确保有IWFILE1和IWEDIT1这两个控件存在。
我测试过的,没有问题。
 
哦!我之前没有在Intraweb里测试,只是手写代码测试一下,觉得Intraweb应该没有问题。
其实不然!
 
问题终于解决了:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=24572
 
隐藏iwfile控件的代码我试过可行,但如何通过iwbutton激活iwfile控件还是没看明白。
 
没看明白?不会吧!
intraweb之文件上载研究(1): http://www.delphibbs.com/keylife/iblog_show.asp?xid=24572
intraweb之文件上载研究(2): http://www.delphibbs.com/keylife/iblog_show.asp?xid=24573
intraweb之文件上载研究(3): http://www.delphibbs.com/keylife/iblog_show.asp?xid=24574
 
简单的说你只要做两个步骤:
1、编辑IWFile1的ExtraTagParams属性,添加这些内容:
id=span1
style=visibility:hidden
2、编辑IWButton1的ScriptEvents属性,选择onClick,然后填写这些代码:
IWFILE1IWCL.Item.click();或者 document.all.IWFILE1.click();

我笔记里写的那些是为了解释为何这样写,但忘了给一个简明的总结了。
 
后退
顶部