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: Stranges ASP.NET Problem | Von: Dirk Klimke ( 30.08.2006 20:26)

Hallo

Ich habe ein merkwürdiges Problem.. Ich denke mittlerweile ganz gut aus in ASP.NET aber das ist crazy..

Ich erstelle auf einer WebForm dynmaisch auf ClickEvent in einer Table Rows und Cells. Also die Form hat zunächst zwei Textfelder. In dem einen gibst du einen Namen ein in die andere eine Zahl. Der Zahlenwert ist der Counter für die Schleife ( also die TableRows ).

Es werden in jeder Row drei Zellen erstellt. In den ersten beiden sind TextBoxen in der letzten eine DDL..

Nun kann der User aus der DDL wählen und beim onchange fülle ich die Textbox... Anschließend will ich die Werte aus den Controls in einer DB speichern.. Und hier wird es komisch.

Bei einem Click(Event) eines ASP Buttons laufe ich die erzeugten Controls durch und will mir die Werte holen. Allerdings scheint es so als würde dreimal auf den button geklickt werden.. Die Ausgabe des Counters führt zu 999 anstatt zu neun..

Ich weiß der Code ist lang... Wäre aber nett wenn jemand ne Idee hätte..

public partial class Login_newDishTest : LoginSessionClass
{
protected void Page_Load(object sender, EventArgs e)
{
#region PageLoad

if (IsSessionOK())
{
if (IsPostBack)
{
this.CreateControls();
}

if (!IsPostBack)
{
}
}

#endregion
}

#region SelectedIndexChanged AND OnLoad

void dr_SelectedIndexChanged(object sender, EventArgs e)
{
this.drawOnChange(ref sender);
}

void dr_Load(object sender, EventArgs e)
{
this.drawOnChange(ref sender);
}

#endregion

#region CreateControls

private void CreateControls()
{
int numrows = int.Parse(this.txbDishRange.Text);
int numcells = 3;

for (int j = 0; j < numrows; j++)
{
TableRow r = new TableRow();

for (int i = 0; i < numcells; i++)
{
TableCell c = new TableCell();

if (i == 0)
{
TextBox txbGoodsRange = new TextBox();
txbGoodsRange.CssClass = "textboxNorm";
txbGoodsRange.Style.Add(HtmlTextWriterStyle.Width, "40px");
txbGoodsRange.ID = "txbAmount_" + j;
txbGoodsRange.Attributes.Add("runat", "server");


//c.Controls.Add(new LiteralControl("row " + j.ToString() + ", cell " + i.ToString()));

c.Controls.Add(txbGoodsRange);
}

if (i == 1)
{
TextBox txbMeasure = new TextBox();
txbMeasure.CssClass = "textboxNorm";
txbMeasure.Attributes.Add("runat", "server");
txbMeasure.Style.Add(HtmlTextWriterStyle.Width, "70px");
txbMeasure.ID = "txbMeasure_" + j;
c.Controls.Add(txbMeasure);

}

if (i == 2)
{
string sql = "SELECT usw ";

DropDownList dr = new DropDownList();
dr.ID = "dr_" + j;
dr.Attributes.Add("runat", "server");
dr.DataSource = this.GetDataReader(sql);
dr.DataTextField = "Goods";
dr.DataValueField = "GoodsID";
dr.AutoPostBack = true;
dr.SelectedIndexChanged += new EventHandler(dr_SelectedIndexChanged);
dr.Load += new EventHandler(dr_Load);
dr.DataBind();

c.Controls.Add(dr);
}

r.Cells.Add(c);
}
Table1.Rows.Add(r);

this.btFurther.Enabled = false;
this.btFurther.Visible = false;

this.btAdd.Click += new ImageClickEventHandler(btAdd_Click);
this.btAdd.Enabled = true;
this.btAdd.Visible = true;
}
}

#endregion

#region SelectBox

private void drawOnChange(ref object sender)
{
DropDownList ddl = (DropDownList)sender;
String numIdent = ddl.ID.Substring((ddl.ID.IndexOf("_") + 1));
String cToFind = "txbMeasure_" + numIdent;
TextBox txtBox = (TextBox)this.Table1.FindControl(cToFind);

if (txtBox != null)
{
int index = int.Parse(ddl.SelectedValue);
txtBox.Text = this.getOneDBItem("SELECT usw.");
}
}

#endregion

#region Save Dish

void btAdd_Click(object sender, ImageClickEventArgs e)
{
int nCount = 0;
foreach (TableRow row in this.Table1.Rows)
{
foreach (TableCell cell in row.Cells)
{
nCount++;
}
}
Response.Write(nCount.ToString());
}

#endregion


Betreff Von Datum
AW: Stranges ASP.NET Problem
zu lang<br>Step doch einfach mit dem Debugger durch
Hannes Preishuber 06.09.2006 13:23

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