关于WEBSNAP设计页面(50分)

  • 主题发起人 主题发起人 djzxljb
  • 开始时间 开始时间
D

djzxljb

Unregistered / Unconfirmed
GUEST, unregistred user!
我用WEBSNAP做一个催办软件管理系统,发现WEBSNAP对页面的美观设计控制比较弱,
例如我做一个信息录入页面,
先建立一个AdapterPageProducer的WebPageModule,然后添加AdapterFieldGroup,
结果页面显示按照从上到下把数据字段列了一遍,而我想对页面字段排列进行重新规划,
可我发现只要涉及数据显示的html就无法改动,请教有没有别的办法更改script或html,
让页面变得漂亮起来,就像ASP一样.
(如果按照ASP开发模式一样开发,通过外部设计一个html模板,然后在html中添加HTMLTag,
再处理,我想这样就失去了使用WebSnap的意义了)
 
我也正研究此问题,未果。真的好烦。
不知有没有什么好办法
 
我现在转用intraweb,发现开发无比迅速,且界面控制十分方便,我已经不用websnap了
 
有没有,使用学习的资料给我啊。
这个intraweb发布时,服务器运行那么一个exe,可以改吗?
 
有QQ或邮箱吗,我发给你,基本上是网上可以找到的,我现在有点体会了,有机会共同研究
 
用WEBSNAP绝对可以做出,只要你想得到的网页来,很简单的,把网页中的<#SERVERSCRIPT>去掉
把自动生成的网页代码放入<#SERVERSCRIPT>的位置,用网页编辑器修改就可以了!
 
那不是和ASP差不多吗,比如说我希望对DBGRID中的列值做链接,点击后可浏览相关记录
详细信息,我在WEBSNAP中就不及好实现,另外对于每列的宽度控制很难做到,我试了几次,
可能水平不够,但我用INTRAWEB就十分方便,而且容易理解
 
WEBSNAP可以理解asp+delphi,INTRAWEB能完成的websnap也可以完成
DBGRID中的列值做链接,我的方法是在DBGRID中加入按钮,在脚本中改成相应的字段就可以了
或者
在DataSetAdapter1中的加入field 在onGetDisplayText中加入
valeu:='<a href=".......">'+field.Value+'</a>';
 
但我觉得效率上要比intraweb差远了,且不好理解,而intraweb就和普通DELPHI
程序开发一样,有事件,方法,
 
我写了一个websnap的东西
让界面漂亮的唯一办法,就是
自己写ASP控制界面,
然后用delphi控件获得数据;
头大。
 
用websnap做界面漂亮的应用不是所见即所得的,
我的作法是用生成器做出我所要的显示数据的内容
然后自动生成的网页代码替换<#SERVERSCRIPT>,最后用
网页编辑器修改,这样就可以了。如果数据内容要修改了
用<#SERVERSCRIPT>替换自动生成的网页代码后进行修改,
然后再改。
websnap用于访问量大的地方。
 
那起不是又回到了webbroker的工作思路上了吗?我觉得如果做为个人兴趣的话,用哪种
方式都无所谓,而且是可以实现自己所需的界面,但如果是真正做为开发,就需要一种
开发思路清晰,效率高的方法.
我现在已经对intraweb着迷了,且上手很快,虽然这个工具BUG太多,但经过努力钻研,
还是都克服了,我希望有机会和大家共同探讨,websnap我想可能会被淘汰的,因为它简直
无法与.net的webform抗争,只有intraweb还可以
 
to yyljt:
我能拜你为师吗?
我按照你说的在DataSetAdapter1中的加入field 在onGetDisplayText中加入
valeu:='<a href=".......">'+field.Value+'</a>',但怎样使打开的页面中的数据定位到
点击的记录呢?
谢谢!
qq:84533116
 
用websnap是为了更方便的使用delphi所带的数据库组件,我认为websnap生成的程序其实是asp的ACTIVEX组件,在websnap中delphi的属性可以在asp中应用,因此用websnap的人想用漂亮的页面要会用asp,用intraweb不能对页面进行完全的控制而websnap可以,但开发效率intraweb更高。
to ninglng
一起学习!
我的方法是
在 DataSetAdapter增加一个AdapterAction 然后在onGetParams中加入对应的字段值如:
procedure Twbdff.AdapterActionGetParams(Sender: TObject;
Params: TStrings);
begin
//可以加入一些你想用的变量。
//params.Values['sl']:=sl;
params.Values['fields']:=AdapterField.Value;//关键字段
end;

procedure Twbdff.AdapterActionExecute(Sender: TObject;
Params: TStrings);
begin
// params.Values['fields'] 是你要定位数据库的字段用它进行数据库查询
end;

在设计页中的 AdapterGrid1 中右键选new component.. 增加一个AdapterCommandColumn 然后右键选add Commands 增加AapterAction 在属性DisplayType中选ctAnchor(超连接)。
然后用我上面的回答中在web页中修改<a ....> </a>为<a ....><% WriteColText(你的字段名.DisplayText) %></a>就可以了。

 
to yyljt:
我先试一下你的做法。
另你看看我的另一些问题
http://expert.csdn.net/Expert/topic/1873/1873472.xml?temp=.202862
 
to yyljt:
我将网页中的<#SERVERSCRIPT>去掉
把自动生成的网页代码放入<#SERVERSCRIPT>的位置,然后在privew时,提示变量未定义?如何解决啊?
我是将html script页中代码的替换了<#SERVERSCRIPT>对吗?请指点。
我会另开贴送分。
 
多人接受答案了。
 
后退
顶部