【问题标题】:Page can only have one server-side form tag页面只能有一个服务器端表单标签
【发布时间】:2012-11-14 21:22:35
【问题描述】:

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

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

也许一个可见的例子会有所帮助:

我有一个想法,我将这些控件封装在不同的表单中,希望一个表单的提交不会触发另一个表单的任何内容,但后来我收到一个错误,说我在页面上不能有多个表单runat="server",据我所知是必需的。

我该如何解决这个问题?

谢谢。

【问题讨论】:

    标签: c# asp.net webforms


    【解决方案1】:

    您只能拥有一个Form

    为您的FormViewGridView 使用不同的ValidationGroups

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

    【讨论】:

      【解决方案2】:

      是的,这是网络表单的一个已知限制(功能?)。您只能有 1 个带有 runat="server" 标签的表单。

      在您的场景中,您可以使用 ValidationGroup 名称将验证分组在一起,以便在触发相同验证的控件时仅执行“喜欢”验证。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-02-24
          • 2012-08-29
          • 2011-08-16
          • 1970-01-01
          • 2014-12-07
          • 1970-01-01
          • 2015-03-24
          相关资源
          最近更新 更多