2013-10-29 48 views
0

網絡應用程序。通過此應用程序,用戶可以添加一段時間的guestconnection。爲此,我有一個打開模式對話框的按鈕,用戶可以添加訪客。輸入必須是名,姓,公司和時間。我使用驗證控件和ValidationGroup。 Validationcontrols檢查我是否忘記了一個輸入,但如果我點擊「添加」代碼不運行。我試圖簡單地用DIV但相同的方法:我在asp.net應用程序中的驗證錯誤是什麼?

這裏是我的aspx代碼:

<div id="add"> 

        <div id="Div2" class="popupConfirmation" runat="server" style="width:350px; height:290px;"> 

          <div class="bodycontrol"> 
          <table> 
         <tr> 
          <td><asp:Label ID="Label3" runat="server" Text="Vorname"></asp:Label></td> 
          <td><asp:TextBox ID="TextBox1" runat="server" ValidationGroup="valid" ></asp:TextBox></td> 
          <td><asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox1"></asp:RequiredFieldValidator></td> 
         </tr> 
         <tr> 
          <td><asp:Label ID="Label4" runat="server" Text="Nachname"></asp:Label></td> 
          <td><asp:TextBox ID="TextBox2" runat="server" ValidationGroup="valid"></asp:TextBox></td> 
          <td><asp:RequiredFieldValidator ID="RequiredFieldValidator2" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox2"></asp:RequiredFieldValidator></td> 
         </tr> 
         <tr> 
          <td><asp:Label ID="Label5" runat="server" Text="Firma"></asp:Label></td> 
          <td><asp:TextBox ID="TextBox3" runat="server" ValidationGroup="valid"></asp:TextBox></td> 
          <td><asp:RequiredFieldValidator ID="RequiredFieldValidator3" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox3"></asp:RequiredFieldValidator></td> 
         </tr> 
        </table> 
          <br /> 
          <table> 
         <tr> 
          <td><asp:LinkButton ID="LinkButton1" runat="server" class="GuestButtons" Text="Hinzufügen" ValidationGroup="valid" onclick="btn_GuestListViewAddDialog_YES_Click" ></asp:LinkButton></td> 
          <td><asp:LinkButton ID="LinkButton2" runat="server" class="GuestButtons" Text="Abbrechen" ValidationGroup="never"></asp:LinkButton></td> 
         </tr> 
        </table> 
          <br /> 
          <table> 
         <tr> 
          <td><asp:Label ID="Label10" runat="server" Text="*Bitte alle Felder ausfüllen"></asp:Label></td> 
         </tr> 
        </table> 
          </div> 

        </div>   

       </div> 

這裏是我的C#代碼:

protected void btn_GuestListViewAddDialog_YES_Click(object sender, EventArgs e) 
      { 
       if (Page.IsValid) //Here i make a breakpoit but it doesn't use this code :( 
       { 

    ...//here is my code 

} 

} 

這是我的腳本塊,如果我點擊linkbutton:

WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$lw_content$LinkButton1", "", true, "valid", "", false, true)) 

回答

1

如果你想在服務器端強制驗證,你需要撥打Page.Validate()之前檢查Page.IsValid

protected void btn_GuestListViewAddDialog_YES_Click(object sender, EventArgs e) 
{ 
    Page.Validate(); 
    if (Page.IsValid) 
    { 

LinkButton也必須有一個ValidationGroup,同樣valid -group如果你想驗證這組如果被點擊的鏈接按鈕或不同的組,如果你不想引發驗證。

編輯:然而,Page.Validate應該是多餘的,因爲CausesValidationtrue默認爲LinkButton,你還指定了它ValidationGroup。所以我很茫然。

+0

我添加Page.Validation()和我的LinkBut​​ton有一個validationGroup但它不工作:( – Tarasov

相關問題