2017-06-30 5 views
0

Ich bekomme einen Fehler, der besagt, dass CheckBox1 nicht deklariert ist, aber es ist definitiv früher in der gridview. Hintergrund ist, dass Benutzer Datensätze in einem gridview genehmigen. Wenn der Datensatz nicht genehmigt wurde, ist das Kontrollkästchen deaktiviert. Weil es nicht genehmigt wurde, möchte ich auch einen Kommentar vom Benutzer verlangen, der warum erklärt. Der Kommentar ist nur erforderlich, wenn das Kontrollkästchen deaktiviert ist.Deklarierte CheckBox Wird im Validator als nicht deklariert angezeigt

Ich habe versucht, die Validatoren herumzuschieben, aber ich habe kein Glück. Gibt es etwas, das mir fehlt? Immer noch ziemlich neu zu asp.net. Back-End ist vb.net. Unten ist das Kommentarfeld. Wenn mehr benötigt wird, lass es mich wissen.

Der Fehler:

'CheckBox1' is not declared. It may be inaccessible due to its protection level.

Der Code:

<asp:TemplateField HeaderText="Comment"> 
    <ItemTemplate> 
     <asp:TextBox ID="Comment" MaxLength="200" runat="server" Width="500px" Text='<%# Eval("Comment") %>'></asp:TextBox> 
     <asp:RegularExpressionValidator 
      Display = "Dynamic" 
      ControlToValidate = "Comment" 
      ID="RegularExpressionValidator" 
      ValidationExpression = "^[a-zA-Z0-9'@&#.\s]{2,200}$" 
      runat="server" 
      ForeColor="red" 
      ErrorMessage="!"> 
     </asp:RegularExpressionValidator> 
     <%If CheckBox1.Checked = "False" then%> 
      <asp:RequiredFieldValidator id="RequiredFieldValidator" runat="server" 
       ControlToValidate="Comment" 
       ErrorMessage="*Required" 
       ForeColor="Red"> 
      </asp:RequiredFieldValidator> 
     <%Else%> 
     <%End If%> 
    </ItemTemplate> 
</asp:TemplateField> 
+1

Sie können nicht auf andere Steuerelemente innerhalb einer GridView-Vorlage zugreifen. – VDWWD

Antwort

0

Sie können nicht leicht deaktivieren und aktivieren RequiredFieldValidator bei clientseitige auf Logik basiert Nicht zu erwähnen, dass diese Steuerelemente in GridView sind.

Mein Vorschlag wird nicht RequiredFieldValidator für das bestimmte Szenario verwenden. Lassen Sie den Benutzer das Formular dann posten, und Sie validieren diese Eingaben serverseitig.

+0

Ich wollte einen CustomValidator innerhalb des ItemTemplate einrichten, um einen Sub auf der vb.net-Seite aufzurufen, der das GridView Zeile für Zeile den Status des Kontrollkästchens und des Kommentar-Textfelds überprüfen würde. Scheint das eine praktikable Lösung? – grichmer

+0

Die meisten CustomValidator werden auf der Serverseite validiert, es sei denn, Sie erstellen eine, die sowohl clientseitig als auch serverseitig validieren kann. Es ist keine leichte Aufgabe. Wenn Sie möchten, können Sie es versuchen. – Win

Verwandte Themen