2016-06-16 14 views
0

Ich habe ein Problem mit RequiredFieldValidator in eine DataList, und einige Unterstützung wäre sehr willkommen.Place RequiredFieldValidator in einem asp: DataList

Problembeschreibung:

Wenn ich die <asp:RequiredFieldValidator> innerhalb des <ItemTemplate> platzieren und die Seite, die ich die folgende Fehlerseite erhalten auszuführen:

enter image description here

Als ich es außerhalb davon, die Seite funktioniert ohne Fehler, aber offensichtlich kann es nicht identifizieren, die <asp:TextBox> Inhalt nicht enthält, bevor es zurückgebucht wird. Und ich würde gerne sagen, wo es in der Lage ist zu sagen, ob ein bestimmtes Textfeld in der Datenliste keinen Text enthält. Hier

ist das Markup: (das Bild src-Attribut ist noch nicht implementiert)

  <asp:DataList ID="imageUploadRoster" runat="server" 
      DataSourceID="ImageUploadRosterDataSource" RepeatDirection="Horizontal" RepeatColumns="5" HorizontalAlign="Left"> 
      <HeaderTemplate> 
       <h3>Set Image Names</h3> 
      </HeaderTemplate> 
      <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Height="180px" Width="180px" /> 
      <ItemTemplate> 
       <div class="imageSetNameDiv"> 
        <asp:HiddenField ID="ImageId" runat="server" Value='<%# Eval("ImageId") %>' /> 
        <asp:HiddenField ID="ImageMimeTypeLabel" runat="server" Value='<%# Eval("ImageMimeType") %>' /> 

        <asp:Image ID="ImageThumbnailLabel" runat="server" Src='<%# Eval("ImageThumbnail") %>' Width="120px" Height="120px" /> 
        <br /> 
           <asp:RequiredFieldValidator ID="imageNameRequired" runat="server" 
         ControlToValidate="ImageName" ErrorMessage="RequiredFieldValidator" 
         ValidationGroup="imageUploadValid"> 

        </asp:RequiredFieldValidator> 
        <asp:TextBox ID="ImageName" runat="server" Text='<%# Eval("ImageName") %>' /> 


        <br /> 

        <hr /> 
        <asp:Button ID="removeImage" runat="server" Text="Remove" CommandName="delete" CommandArgument='<%# Eval("ImageId") %>' /> 
       </div> 
      </ItemTemplate> 
     </asp:DataList> 

Sie für jede mögliche Unterstützung Vielen Dank im Voraus. Peter

Antwort

1

Dieser Fehler tritt auf, wenn ASP.NET zwei Steuerelemente mit derselben ID auf der Seite findet. Ich denke, aus irgendeinem Grund erhalten in Ihrem Fall Validatoren für jeden Artikel die gleiche ID. Einstellung der folgenden Eigenschaft:

ClientIDMode="Predictable" 

für Validierer sollte es beheben. Dieser Modus stellt sicher, dass die Kontrolle im datengebundenen Kontext die richtige ID erhält.