页面包含
<asp:ValidationSummary id="ValidationSummary1" ShowSummary="False" ShowMessageBox="True" runat="server"></asp:ValidationSummary>
...
...
//datagrid中
<asp:TemplateColumn HeaderText="Quantity" HeaderStyle-CssClass="label1" HeaderStyle-Font-Size="8pt">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" Runat="server" Width="94" MaxLength="15" style="FONT-SIZE: 8pt"></asp:TextBox>
<asp:RangeValidator id="Rangevalidator1" Display="Dynamic" runat="server" Width="5px" ControlToValidate="txtQuantity"
ErrorMessage="Quantity is not a valid number" MinimumValue="0" MaximumValue="999999999999.99" Type="Double">*</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
点击任何服务器button控件都不会触发服务器端事件,通过调试脚本发现点击按钮时执行
if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();
当Page_ClientValidate()完后就停止,不会执行Form的onsubmit事件ValidatorOnSubmit(),Page_ClientValidate()返回值为true;

解决方案 »

  1.   

    把ValidationSummary控件嵌套到<ItemTemplate>中试一下,如何??
      

  2.   

    控件包含在UserControl中,通过LoadControl装入UserControl
      

  3.   

    你把validationsummary放到datagrid 的下面试试。
      

  4.   

    RangeValidator Display 设为 none 呢?
      

  5.   

    确认你的button的causevalidation属性为true
      

  6.   

    所有button的causevalidation属性都为true,RangeValidator也能正常工作,只是提交事件执行不了,并且button的都有定义,
    private void InitializeComponent()
    {
    this.btnSave1.Click += new System.EventHandler(this.btnSave1_Click);
    ..
    ..
    }