DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ASP.NET | Thema: dynamische buttons | Von: toni montana ( 13.11.2004 00:20)

Hallo,
ich habe ein Problemm und ich kann nicht weiter machen. kann mir bitte jemand
helfen?

Ich werde versuchen mich klar auszudrücken.

Ich danke euch für eure Zeit!

Das Code ist in C# und die Datenbank ist Oracle


1-ste Problem

Ich will Steuerelemente zur Laufzeit erstellen. Ich rufe die DynamicLinks() methode,
die folgendes macht: erstellt LinkButtons(sie bleiben immer gleich in Panel3) die ihre
Namen von der Datenbank kriegen. Die OnClick Methode von den Linkbuttons ruff ein
Artikel von der Datenbank und sollte andere Linkbuttona (Panel1) erstellen. Sie erstellen doch
die Linkbuttons doch dann wenn ich ein zweites mal auf die Button geclickt habe. Dasselbe
Problem kommt bei den erstelle Linkbuttons (sie machen das selbe wie die im panel3) im panel1.
Ich muss 2 mal clicken um das erwünschte Effekt zu kriegen.

Da ist die Tabelle in oracle

[code]
create table field (
name varchar2(20),
upperfield varchar2(20),
primary key (name),
foreign key (upperfield) references field(name),
unique(name,upperfield));
[/code]

Da ist C# Code

[code]
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
Connection();
DynamicLinks();
DynamicLinks(Label6.Text);
}
else
{
DynamicLinks();
DynamicLinks(Label6.Text);
connection.Close();
}
}

private void DynamicLinks(string field)
{
prm1 = cmd.Parameters.Add("pField",OracleDbType.Varchar2);
prm1.Value = field;
OracleDataReader reader;
cmd.CommandText = "SELECT count(*) as Anzahl FROM field WHERE upperfield = :pField";
Anzahl = Convert.ToInt32(reader["Anzahl"]);

cmd.CommandText = "SELECT name FROM field WHERE upperfield = :pField";

LinkButtons1 = new LinkButton[Anzahl];
string [] fields = new string[Anzahl];

while(reader.Read())
{
fields[i] = reader["name"].ToString();
i++;
}


for (i = 0; i< Anzahl; i++)
{
LinkButtons1[i] = new LinkButton();
LinkButtons1[i].Text = fields[i];
LinkButtons1[i].Click += new EventHandler(this.LinkButtons1_Click);
Panel1.Controls.Add(LinkButtons1[i]);
Panel1.Controls.Add(new LiteralControl("<br>"));
}

}


private void DynamicLinks()
{
cmd.CommandText = "SELECT count(*) as Anzahl FROM field WHERE upperfield IS NULL";
Anzahl = Convert.ToInt32(reader["Anzahl"]);

cmd.CommandText = "SELECT name FROM field WHERE upperfield IS NULL";

LinkButtons = new LinkButton[Anzahl];
string [] fields = new string[Anzahl];

while(reader.Read())
{
fields[i] = reader["name"].ToString();
i++;
}

for (int j = 0; j< Anzahl; j++)
{
LinkButtons[j] = new LinkButton();
LinkButtons[j].Text = fields[j];
LinkButtons[j].Click += new EventHandler(this.LinkButtons_Click);
Panel3.Controls.Add(LinkButtons[j]);
Panel3.Controls.Add(new LiteralControl("<br>"));
}

}

private void LinkButtons_Click(object sender, System.EventArgs e)
{
for (int i = 0; i<LinkButtons.Length;i++)
{
if (sender.GetHashCode() == LinkButtons[i].GetHashCode())
{
Connection();
Label1.Text = GetArtikel(LinkButtons[i].Text);
Label2.Text = LinkButtons[i].Text;
Label6.Text = LinkButtons[i].Text;
}
}
DynamicLinks();

}


private void LinkButtons1_Click(object sender, System.EventArgs e)
{
for (int i = 0; i<LinkButtons1.Length;i++)
{
if (sender.GetHashCode() == LinkButtons1[i].GetHashCode())
{
Connection();
Label1.Text = GetArtikel(LinkButtons1[i].Text);
Label2.Text = LinkButtons1[i].Text;
Label6.Text = LinkButtons1[i].Text;
}
}
DynamicLinks(Label6.Text);

}
[/code]

ein paar sachen habe ich weggenommen damit code einfacher aussieht.


VIELEN DANK IM VORAUS. BITTE BITTE HELFEN, DA ICH KANN NICHT WEITER MACHEN. UND NIEMAND KONNTE BIS JETZT MIR HELFEN.



Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG