页面只能有一个服务器端表单标记

时间:2012-11-14 21:22:36

标签: c# asp.net webforms

我的某个页面遇到问题。我在页面上有一个FormView控件,用于在数据库表中输入新行,在同一页面上有一个GridView控件,用于更新/删除同一数据库表中的行。

FormView控件上有验证器来验证在数据库中抛出的任何输入,当我尝试编辑行时,它似乎会干扰GridView。当我尝试保存编辑时,FormView上的验证控件被触发并出现错误,因为文本框输入为空,因此GridView无法保存修改后的表数据。

也许一个明显的例子会有所帮助:

Screenshot

我有一个想法,我以不同的形式包含这些控件,希望一个表单的提交不会触发另一个表单但是我得到一个错误,说我在页面上不能有多个表单使用runat="server",据我所知,这是必需的。

我怎样才能解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:1)

您只能有一个Form

ValidationGroupsFormView使用不同的GridView

http://msdn.microsoft.com/en-us/library/ms227424(v=vs.100).aspx

答案 1 :(得分:0)

是的,这是webforms的已知限制(功能?)。您只能拥有一个带有runat="server"标记的表单。

在您的方案中,您可以使用ValidationGroup名称将验证组合在一起,这样只有在触发相同验证的控件时才执行“like”验证。

答案 2 :(得分:0)

我做的是我将两个表单编码为回发到页面并解析了Page.Load中的回发变量。奇怪的?是。作品?是。