• 使用ActionlessForm.cs重写Form后使得验证控件失效的解决方法


    ActionlessForm.cs
     1public class Form : HtmlForm
     2    {
     3        protected override void RenderAttributes(HtmlTextWriter writer)
     4        {
     5            writer.WriteAttribute("name", Name);
     6            base.Attributes.Remove("name");
     7
     8            writer.WriteAttribute("method", Method);
     9            base.Attributes.Remove("method");
    10
    11            Attributes.Render(writer);
    12
    13            base.Attributes.Remove("action");
    14
    15            if (base.ID != null)
    16            {
    17                writer.WriteAttribute("id", ClientID);
    18            }

    19        }

    20    }
    目的主要是将Form中的Action去掉,让Url Rewrite在postback的时候能在IHttpModule中找到实际aspx文件,但在这样的环境下除了把Action去掉后也把验证控件的  onsubmit="if (!ValidatorOnSubmit()) return false;"  也去掉。

    想到一个笨的办法解决:
    在postback的按钮,如
    <asp:button id="btnOK" Runat="server" Text="确定" ></asp:button>
    在按钮外端添加
    <span onclick="if (!ValidatorOnSubmit()){return false;}"><asp:button id="btnOK" Runat="server" Text="确定" ></asp:button></span>
    即可在点击按钮前先通过 if(!ValidatorOnSubmit()) return false; 这个验证后再执行postback
  • 相关阅读:
    MD5
    第一阶段冲刺(十)
    团队作业进度报告
    第一阶段冲刺(九)
    团队作业进度报告
    第一阶段冲刺(八)
    第一阶段冲刺(七)
    团队作业进度报告
    第一阶段冲刺(六)
    团队作业进度报告
  • 原文地址:https://www.cnblogs.com/yuxiang9999/p/486415.html
Copyright © 2020-2023  润新知