在WebSnap技术中,我制作了一个按纽,使它没按一次,数据记录指针向下跳一下,可我的按纽却无论按多少下,就是第二条记录,请高手帮忙。

84175971 2003-11-20 01:55:59
在WebSnap技术中,我制作了一个按纽,使它没按一次,数据记录指针向下跳一下,可我的按纽却无论按多少下,就是第二条记录,请高手帮忙。
procedure Tfirth.A1GetValue(Sender: TObject; var Value: Variant);
begin
value:=s;
end;


procedure Tfirth.bh_getExecute(Sender: TObject; Params: TStrings);
begin
adotable1.Next;
s:=adotable1.fieldbyname('ygbh').AsString;
end;


procedure Tfirth.WebPageModuleActivate(Sender: TObject);
begin
s:=adotable1.fieldbyname('ygbh').AsString;
end;
...全文
22 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
84175971 2003-11-20
  • 打赏
  • 举报
回复
再次感谢,让我好好的想一下,我先把分数结了,想不通再问你。
hiflower 2003-11-20
  • 打赏
  • 举报
回复
三层也没有问题,比如可以“ Apply ”Action 的 AfterExecute 事件中写:
if ClientDataSet1.ChangeCount>0 then
if ClientDataSet1.ApplyUpdates(0)>0 then
ClientDataSet1.CancelUpdates;
hiflower 2003-11-20
  • 打赏
  • 举报
回复
当然可以随意放置,如果你用 PageProducer 而不是 AdapterPageProducer ,那么服务端脚本你可以随意写。如:
<form method="post">
<input type="hidden" name="__act">
<input type="text" name="<%=DatasetAdapter1.fieldname.InputName%>" value="<%=DatasetAdapter1.fieldname.EditText%>">
....
<input type="submit" value="Next" onclick="__act.value='<%=DatasetAdapter1.NextRow.AsFieldValue%>';submit();return false;">
<input type="submit" value="Prior" onclick="__act.value='<%=DatasetAdapter1.PriorRow.AsFieldValue%>';submit();return false;">
</form>

即使用 AdapterPageProducer,其实也是可以较好组织的。并且如果不使用 <#SERVERSCRIPT>标记,则也如 PageProducer 一样可以随意写 Server-side script 了
84175971 2003-11-20
  • 打赏
  • 举报
回复
多谢花大哥,我同意你的说法,这也是李维书中说到的。
使用DatasetAdapter的话,那么网页的界面会很难看,不能自己订制模板,
而且我本人使用的是三层体系结构,如“上一记录”,“下一记录”,“保存”,“新增”
“取消”,等按纽我会把他放在一张网页上,
如果DatasetAdapter能实现各数据库的字段在网页中任意放置的话我会同意,“上一记录”,“下一记录”,的操作我知道该如何实现,但在三层体系中“保存”按纽会有一点麻烦,如果能解决这个问题,那么会好很多,其他的问题便全都可以解决。
花大哥有何高见。
siwuge 2003-11-20
  • 打赏
  • 举报
回复
你的程序忘记循环啦:)

procedure Tfirth.bh_getExecute(Sender: TObject; Params: TStrings);
if adotable1.active then
begin
adotable1.first;
while not adotable1.eof do
begin
s:=adotable1.fieldbyname('ygbh').AsString;
combobox1.Items.Add(s1);
adotable1.Next;
end;
end;





hiflower 2003-11-20
  • 打赏
  • 举报
回复
应该先 Locate 到当前记录,再用 Next
当你点 Next 按钮提交时,WebApp 并没有为你记住当前的记录指针,所以你的 Next 总是第二条记录。
当前记录的信息可以保存在 Session 中,但更通常的做法是放在响应页面中,用户提交时把这个信息同时提交上来,DatasetAdapter 用的正是这种方法,所以,更简单的方法是直接用 DatasetAdapter 的 "NextRow" Action
84175971 2003-11-20
  • 打赏
  • 举报
回复
TO siwuge:
谢谢,你所说的是一般的程序,我这个是WebSnap技术。
请告诉我如何能够按下web网页上的按纽后能查看第二个记录,第三个记录,第四个记录……。

1,592

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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