2009-04-09 10 views
0

Ich mache ein Projekt auf Flugbuchungssystem. Meine Aufgabe ist es, die Details der Passagiere einzugeben. Diese Passagiere können sowohl Erwachsene als auch Kinder umfassen. Also muss ich für alle reisenden Passagiere dynamisch eigene Etiketten und Textfelder generieren, damit alle Details eingegeben werden können.ASP.NET - Wie man Etiketten dynamisch generiert

Wie kann ich das tun?

+0

Ich schlage vor, Sie benennen Ihre Frage ein wenig mehrdeutig den Titel –

+0

Ich schlage vor, Sie auch Ihre Frage neu schreiben und machen Sie wissen, was Ihre spezifische Schwierigkeit ist. – inspite

Antwort

1

mit Nicht zu hart, sondern mit http://www.asp.net/learn/ starten. Wenn Sie eine spezifischere Frage haben, bearbeiten Sie Ihre ursprüngliche, sehr vage Frage.

1

Es ist ziemlich einfach, im Code dahinter Steuerelemente hinzuzufügen - werfen Sie einen Blick auf die controls.Add() Methode.

2

Sie können sich GridViews/DetailsView/Repeater usw. ansehen. Sie können dann einen Datenbindungscode schreiben, um die verschiedenen Bezeichnungen für jeden Datensatz nach Bedarf anzuzeigen.

Wie andere bereits gesagt haben, ist ein bisschen mehr Informationen erforderlich, um die Frage richtig zu beantworten. Vielleicht könnten Sie etwas von dem Code, den Sie bereits haben, veröffentlichen, damit wir Sie in die nächste Richtung weisen können.

+0

+1 - Das ist wirklich die Antwort. Ich verdanke dir auch meine Antwort. –

1

Nur um zu ergänzen, was ein paar andere gesagt haben: Wenn Sie diesen Ansatz verwenden, dann ist meine Vermutung, dass Sie wirklich nicht verstehen, wie ASP.NET auf einer grundlegenden Ebene funktioniert.

Wenn Sie eine Liste der Passagiere anzeigen möchten, dann ist die letzte Sache, die Sie tun würden, dynamisch ein Label-Steuerelement für jeden Passagier zu generieren - es ist einfach falsch auf so vielen Ebenen.

Es gibt zwei Lösungen, die ich mir vorstellen kann. Zuerst können Sie ein einzelnes Label an einer geeigneten Stelle platzieren und dieses Label dann mit dem HTML-Code füllen, der für die Darstellung Ihrer Passagiere erforderlich ist (einschließlich aller weiteren Referenzen). Zweitens könnten Sie eine GridView oder eines der verwandten Steuerelemente verwenden, um diese Art von Informationen zu rendern. Das war Robins Vorschlag und es ist wirklich der beste Ansatz.

1

Sie Seite enthält eine Controls-Auflistung, die Sie neue Steuerelemente anhängen können, wie Labels und Textfelder, dh

Sie diese Sammlung Steuerelemente zugreifen können Code-Behind verwenden, die Page.Controls Eigenschaft Zugriff und Anhängen der Kontrollen Sie möchten auf der Seite anzeigen, die dann gerendert wird.

Sie können check this out: http://msdn.microsoft.com/en-us/library/system.web.ui.control.createchildcontrols.aspx

Hier ist ein einfaches Beispiel, das Sie ausprobieren können:

Codefront (aspx webfor m)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Test Website</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <div> 
    <!-- here you can place the static text and other elements --> 
     <h1>TESTING</h1> 
     blah blah blah blah blah 
    </div> 

    <div id="placeholder" runat="server"> 
    <!-- here is where the dinamically created elements will be placed --> 
    </div> 

    </form> 
</body> 
</html> 

-Code-behind

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page { 

    protected override void CreateChildControls(){ 

     // Add a Label to the current ControlCollection. 
     Label lbl = new Label(); 
     lbl.Text = "Label text"; 
     placeholder.Controls.Add(lbl); 

     // Create a text box control, set the default Text property, and add it to the ControlCollection. 
     TextBox box = new TextBox(); 
     box.Text = "Textbox text"; 
     placeholder.Controls.Add(box); 

    } 

} 

Hoffe das Hilfe;)

0

Manchmal ist es viel einfacher, nur Ihre eigene Serversteuerung zu erstellen. Auf diese Weise können Sie den HTML-Code, der viel einfacher ausgegeben wird, kontrollieren und mehr Kontrolle über verschiedene Browser und Sprachen mit weniger Code haben.

Verwandte Themen