H
huawdg
Unregistered / Unconfirmed
GUEST, unregistred user!
在某些情况下,如果表单提交时,表单的 action 属性带查询参数,则 WebSnap 应用程序将抛出异常。
如下例,在一个 Web 页的表单中,以表格形式编辑 DataSetAdapter,每行放置一个与 DataSetAdapter 的 Apply 行为对应的“提交”按钮。
设进入此页时的 URL 为“http://hostname/pagename?ID=1”,如果不明确设置 action 属性,则表单提交时将发生异常。
因此,应该明确设置此表单的 action 属性不带查询参数,即 action="<%=Page.HREF%>",使查询参数失效。
如果你需要查询参数的值,只能用别的方法来实现,比如使用会话变量。
<%
var vAdapter= Modules.WebDataModule1.DataSetAdapter1;
vAdapter.Mode='Edit';
%>
<form method="post" action="<%=Page.HREF%>"><!--必须设置 action 属性! -->
<input type="hidden" name="__act" >
<table>
<tr>
<td>字段1</td>
<td>字段2</td>
</tr>
<%
var e=new Enumerator(vAdapter.Records);
for (;!e.atEnd();e.moveNext())
{
x=e.item();
%>
<tr>
<td><input type="text" name="<%=x.Field1.InputName%>" value="<%=x.Field1.EditText%>"></td>
<td><input type="text" name="<%=x.Field2.InputName%>" value="<%=x.Field2.EditText%>"></td>
<td><input type="submit" value="提交" onclick="__act.value='<%=vAdapter.Apply.LinkToPage(Page.Name).AsFieldValue%>'"></td>
</tr>
<%
if (vAdapter.HiddenRecordFields!=null)
vAdapter.HiddenRecordFields.WriteFields(Response);
}
%>
</table>
<%
if (vAdapter.HiddenFields!=null)
vAdapter.HiddenFields.WriteFields(Response);
%>
</form>
如下例,在一个 Web 页的表单中,以表格形式编辑 DataSetAdapter,每行放置一个与 DataSetAdapter 的 Apply 行为对应的“提交”按钮。
设进入此页时的 URL 为“http://hostname/pagename?ID=1”,如果不明确设置 action 属性,则表单提交时将发生异常。
因此,应该明确设置此表单的 action 属性不带查询参数,即 action="<%=Page.HREF%>",使查询参数失效。
如果你需要查询参数的值,只能用别的方法来实现,比如使用会话变量。
<%
var vAdapter= Modules.WebDataModule1.DataSetAdapter1;
vAdapter.Mode='Edit';
%>
<form method="post" action="<%=Page.HREF%>"><!--必须设置 action 属性! -->
<input type="hidden" name="__act" >
<table>
<tr>
<td>字段1</td>
<td>字段2</td>
</tr>
<%
var e=new Enumerator(vAdapter.Records);
for (;!e.atEnd();e.moveNext())
{
x=e.item();
%>
<tr>
<td><input type="text" name="<%=x.Field1.InputName%>" value="<%=x.Field1.EditText%>"></td>
<td><input type="text" name="<%=x.Field2.InputName%>" value="<%=x.Field2.EditText%>"></td>
<td><input type="submit" value="提交" onclick="__act.value='<%=vAdapter.Apply.LinkToPage(Page.Name).AsFieldValue%>'"></td>
</tr>
<%
if (vAdapter.HiddenRecordFields!=null)
vAdapter.HiddenRecordFields.WriteFields(Response);
}
%>
</table>
<%
if (vAdapter.HiddenFields!=null)
vAdapter.HiddenFields.WriteFields(Response);
%>
</form>