2011-08-16 37 views
0

我有一個commandfield和很少的templatefields。 templatefields附有驗證器,當選擇錯誤的數據時,它們將顯示正確的消息。但是,當我單擊命令字段時,即使數據無效,也不會顯示錯誤並觸發事件。 Morover,我也檢查了服務器上的Page.IsValid,並且即使數據處於無效狀態,也可以正常工作。這個標記:即使數據在控件中無效,Gridview的更新事件也會觸發

<asp:TemplateField HeaderText="Exp. Date"> 
    <ItemTemplate> 
     <asp:Label ID="lblExpiration" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Expiration")%>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate > 
     <asp:DropDownList ID="ddlMM" runat="server" ValidationGroup="vgExpDateGrid"> 
      <asp:ListItem Value="-1">MM</asp:ListItem> 
      <asp:ListItem Value="1" >01</asp:ListItem> 
      <asp:ListItem Value="2">02</asp:ListItem> 
      <asp:ListItem Value="3">03</asp:ListItem> 
      <asp:ListItem Value="4">04</asp:ListItem> 
      <asp:ListItem Value="5">05</asp:ListItem> 
      <asp:ListItem Value="6">06</asp:ListItem> 
      <asp:ListItem Value="7">07</asp:ListItem> 
      <asp:ListItem Value="8">08</asp:ListItem> 
      <asp:ListItem Value="9">09</asp:ListItem> 
      <asp:ListItem Value="10">10</asp:ListItem> 
      <asp:ListItem Value="11">11</asp:ListItem> 
      <asp:ListItem Value="12">12</asp:ListItem> 
     </asp:DropDownList> 
     <span class="green"></span> /&nbsp; 
     <asp:DropDownList ID="ddlYY" runat="server" ValidationGroup="vgExpDateGrid"> 
     </asp:DropDownList> 
     <span class="green"></span> 
     <asp:RequiredFieldValidator ID="rfvddlMM" ControlToValidate="ddlMM" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator> 
     <asp:RequiredFieldValidator ID="rfvddlYY" ControlToValidate="ddlYY" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator> 
    </EditItemTemplate> 
</asp:TemplateField> 

<asp:CommandField 
UpdateText="Update" CausesValidation="true" 
    HeaderText="Update" ShowEditButton="true" 
    EditText="Update <br/>Exp. Date" ButtonType="Link" /> 

請不要關注奇怪的控制名稱和樣式。基本上模板字段有年份和月份的下拉列表。在rowdatabound事件中填充年份的下拉列表。正如你可以看到驗證器連接仍然正常工作。有誰可以告訴我可能是什麼問題?

回答

1

乍一看,我會說你沒有ValidationGroup="vgExpDateGrid"asp:CommandField。您CommandField中更改爲:

<asp:CommandField ValidationGroup="vgExpDateGrid" 
UpdateText="Update" CausesValidation="true" 
    HeaderText="Update" ShowEditButton="true" 
    EditText="Update <br/>Exp. Date" ButtonType="Link" /> 

或刪除或者從ValidationGroupasp:RequiredFieldValidator

+0

謝謝。它像一個魅力。 – Jaggu

相關問題