2009-09-04 12 views
1

Ich habe ein Textfeld, das gerade verschwunden ist. Wenn ich ein anderes templateField irgendwo auf der Seite hinzufüge, verschwindet dieses Bizarell. Wer weiß, was könnte los sein?<asp: TemplateField-Boxen verschwinden

<asp:TemplateField HeaderText="Summary" SortExpression="summary"> 
      <ItemTemplate> 
       <asp:Label ID="lblSummary" runat="server" Text='<%# Bind("summary") %>'></asp:Label> 
      </ItemTemplate> 

      <ItemTemplate> 
       <asp:TextBox ID="txtSummary" TextMode="MultiLine" Width="500" Height="100" runat="server" Text='<%# Bind("summary") %>'></asp:TextBox> 
      </ItemTemplate> 

     </asp:TemplateField> 

Antwort

1
<AnotherEdit> 

Ich hoffe, dass Sie das falsch nicht nehmen, und ich meine nicht beleidigen, aber es scheint, wie Sie einige der grundlegenden Konzepte und brauchen einen guten Platz zu lernen, sie sind vermisst.

Bitte lesen Sie den folgenden Artikel, um zu verstehen, wie Sie TemplateFields im Gegensatz zu einem normalen BoundField- oder einem Command-Feld verwenden. Ich denke, sobald du es "erwischt" hast, werden deine verschwindenden Probleme verschwinden, weil du es selbst sehen kannst.

http://www.asp.net/learn/data-access/tutorial-12-cs.aspx

</AnotherEdit> 

Sie können nicht mehr als ein ItemTemplate in ein Template haben. Sie können eine EditItemTemplate und eine ItemTemplate haben, obwohl ...

Bearbeiten - Hinzugefügt

Die ItemTemplate zeigt an, wenn Sie im normalen Anzeigemodus sind.
Die EditItemTemplate wird angezeigt, wenn Sie sich im Bearbeitungsmodus befinden. InsertItemTemplate wird angezeigt, wenn Sie sich im Einfügemodus befinden.

Für jede Spalte in einem GridView (oder Feld in einem FormView oder Feld in einem DetailsView) kann nur ein TemplateField vorhanden sein. Innerhalb dieser Template, kann es nur eine ItemTemplate sein, ein EditItemTemplate und ein InsertItemTemplate (und nicht alle drei erforderlich sind, aber alle drei sind empfohlen.)

Wenn Sie wollen, dass die TextBox neben zeigen, bis zu das Etikett in dem normalen nicht-edit-Modus, würden Sie das Textfeld innerhalb des bestehenden ItemTemplate setzen sich wie folgt:

<ItemTemplate>     
     <asp:Label ID="lblSummary" runat="server" Text='<%# Bind("summary") %>'> 
     </asp:Label>    
     <asp:TextBox ID="txtSummary" TextMode="MultiLine" Width="500" Height="100" runat="server" Text='<%# Bind("summary") %>'> 
     </asp:TextBox>    
    </ItemTemplate>    

Allerdings ist die Norm das Etikett, wenn im Lesemodus zu haben, und ein Textfeld, wenn in bearbeiten oder aktualisieren Modus wie folgt:

<asp:TemplateField HeaderText="Summary" SortExpression="summary"> 
    <ItemTemplate>     
     <asp:Label ID="lblSummary" runat="server" Text='<%# Bind("summary") %>'> 
     </asp:Label>    
    </ItemTemplate>    
    <EditItemTemplate>     
     <asp:TextBox ID="txtSummary" TextMode="MultiLine" Width="500" Height="100" runat="server" Text='<%# Bind("summary") %>'> 
     </asp:TextBox>    
    </EditItemTemplate>   
<InsertItemTemplate>     
     <asp:TextBox ID="txtSummary" TextMode="MultiLine" Width="500" Height="100" runat="server" Text='<%# Bind("summary") %>'> 
     </asp:TextBox>    
    </InsertItemTemplate>   
</asp:TemplateField> 
+0

Was ist der Unterschied zwischen einer InsertItemTemplate und einer EditItemTemplate? – madphp

+0

Legen Sie um die TextBox-Felder, aber TemplateField fehlt noch. – madphp

+0

cool. würde dies erklären, warum TemplateFields nicht erscheinen? – madphp

1

Sie haben mehrere "ItemTemplate" -Deklarationen drin. Es sollte nur einen geben.

Verwandte Themen