在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;
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;
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;
谢谢,你所说的是一般的程序,我这个是WebSnap技术。
请告诉我如何能够按下web网页上的按纽后能查看第二个记录,第三个记录,第四个记录……。
当你点 Next 按钮提交时,WebApp 并没有为你记住当前的记录指针,所以你的 Next 总是第二条记录。
当前记录的信息可以保存在 Session 中,但更通常的做法是放在响应页面中,用户提交时把这个信息同时提交上来,DatasetAdapter 用的正是这种方法,所以,更简单的方法是直接用 DatasetAdapter 的 "NextRow" Action
使用DatasetAdapter的话,那么网页的界面会很难看,不能自己订制模板,
而且我本人使用的是三层体系结构,如“上一记录”,“下一记录”,“保存”,“新增”
“取消”,等按纽我会把他放在一张网页上,
如果DatasetAdapter能实现各数据库的字段在网页中任意放置的话我会同意,“上一记录”,“下一记录”,的操作我知道该如何实现,但在三层体系中“保存”按纽会有一点麻烦,如果能解决这个问题,那么会好很多,其他的问题便全都可以解决。
花大哥有何高见。
<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 了
if ClientDataSet1.ChangeCount>0 then
if ClientDataSet1.ApplyUpdates(0)>0 then
ClientDataSet1.CancelUpdates;