dynamisch erstellte Tables werden nicht angezeigt

cimcime

Grünschnabel
Hallo...
ich hoffe, ich bin hier richtig.
Auf einer asp-Seite sollen dynamisch per button klick asp-tables angezeigt werden. Also folgendermaßen: ich habe drei buttons. mit dem ersten button-klick erscheint die erste Tabelle mit textfeldern, dann werden die textfelder durch den benutzer gefüllt. anschließend betätigt der user den zweiten button, dieser wird mit den werten der ersten tabelle erstellt. das geht auch prima. wenn ich aber den nächsten button klicke gehen die anderen tabellen verloren, sprich die seite zeigt diese nicht an. ich weiß jetzt nicht wie ich die seite rendern kann? oder, ob es anderen Lösungsmöglichkeiten gibt. ich wäre froh wenn der eine oder andere paar ideen hätte.
 
hi,


könntest du ein klein wenig quellcode zeigen ? (vor allem zum button 3)

was soll der dritte button eigentlich machen ?



mfg
Martin
 
Also im Page_Load wird die Methode aufgerufen:
Code:
DynamicTableprozent(2, 2);
die die Werte in die von mir gewünschte Darstellung bringt (siehe ganz unten). Alle anderen Tabellen sind genauso aufgebaut. Die zweite Tabelle wird auf Basis der ersten aufgebaut (Textfelder werden berechnet), d.h. die Button 2 Klick sieht folgendermaßen aus:
Code:
protected void ButtonAbsolut_Click(object sender, EventArgs e)
    {
        DynamicTableabsolut(2, 2);
     }
Es wird also nur die zweite Methode zur Darstellung der Tabelle aufgerufen.
Die dritte siehtn dem ähnlich aus:
Code:
    protected void ButtonSchalter_Click(object sender, EventArgs e)
    {
       DynamicTableschalter(2, 5);
      }
Ich hatte jetzt die Vermutung, dass beim neu Laden der Seite durch das Button klich die Tabellen nicht mehr angezeigt werden (bzw. gerendert werden). ich weiß aber nun nicht wie es dieses Problem entgehen kann.

Danke....

METHODE:
Code:
   protected void DynamicTableprozent(int Anlage, int Ort)
    {
        // Daten aus der Tabelle in ein DataTable einlesen
        dtRatings = new DataTable();

        sqlCmd.Parameters.Clear();

        sqlCmd.Parameters.Add("@Anlage", SqlDbType.Int);
        sqlCmd.Parameters["@Anlage"].Value = Anlage;
        sqlCmd.Parameters.Add("@Ort", SqlDbType.Int);
        sqlCmd.Parameters["@Ort"].Value = Ort;
        sqlCmd.CommandText = "GetAllAnlageRating";
        sqlCon.Open();
        sqlDR = sqlCmd.ExecuteReader();

        for (int i = 0; i < sqlDR.FieldCount; i++)
        {
            dtRatings.Columns.Add(sqlDR.GetName(i));
        }

        object[] arrVal = new object[dtRatings.Columns.Count];

        while (sqlDR.Read())
        {
            if (!sqlDR.IsDBNull(0))
            {
                for (int i = 0; i < sqlDR.FieldCount; i++)
                {
                    arrVal[i] = sqlDR[i];
                }
                dtRatings.Rows.Add(arrVal);
            }
        }
        sqlCon.Close();

        DataColumn[] dtPK = new DataColumn[dtRatings.Columns.Count];
        for (int p = 0; p < dtRatings.Columns.Count; p++)
            dtPK[p] = dtRatings.Columns[p];

        dtRatings.PrimaryKey = dtPK;

        List<double> lstKV = new List<double>();
        List<double> lstKA = new List<double>();
        List<double> lstA = new List<double>();

        foreach (DataRow dr in dtRatings.Rows)
        {
            if (!lstKV.Contains(Convert.ToDouble(dr["Voltage"])))
                lstKV.Add(Convert.ToDouble(dr["Voltage"]));

            if (!lstA.Contains(Convert.ToDouble(dr["RCurrent"])))
                lstA.Add(Convert.ToDouble(dr["RCurrent"]));
        }
        lstKV.Sort();
        lstA.Sort();
        int[] rowspan = new int[lstKV.Count];
        int zeile = 0;
        int zelle = 0;

        TableRow test = new TableRow();
        TableCell testtc1 = new TableCell();
        testtc1.BorderStyle = BorderStyle.Solid;
        testtc1.BorderWidth = 1;
        testtc1.BorderColor = System.Drawing.Color.Black;
        testtc1.Text = "U(kV)";
        test.Cells.Add(testtc1);

        TableCell testtc2 = new TableCell();
        testtc2.BorderStyle = BorderStyle.Solid;
        testtc2.BorderWidth = 1;
        testtc2.BorderColor = System.Drawing.Color.Black;
        testtc2.Text = "I(kA)";
        test.Cells.Add(testtc2);

        for (int p = 0; p < lstA.Count; p++)
        {
            TableCell testc = new TableCell();
            testc.BorderStyle = BorderStyle.Solid;
            testc.BorderWidth = 1;
            testc.BorderColor = System.Drawing.Color.Black;
            testc.Text = lstA[p].ToString();
            test.Cells.Add(testc);
        }
        tblprozent.Rows.Add(test);

        for (int k = 0; k < lstKV.Count; k++)
        {
            lstKA.Clear();
            foreach (DataRow dr in dtRatings.Rows)
            {
                if (Convert.ToDouble(dr["Voltage"]) == lstKV[k] & (!lstKA.Contains(Convert.ToDouble(dr["BreakingCurrent"]))))
                    lstKA.Add(Convert.ToDouble(dr["BreakingCurrent"]));
            }
            lstKA.Sort();
            rowspan[k] = lstKA.Count;
            for (int t = 0; t < lstKA.Count; t++)
            {

                TableRow tr = new TableRow();
                tr.ID = "tr_" + k.ToString() + "_" + t.ToString();
                tr.BorderStyle = BorderStyle.Solid;
                tr.BorderWidth = 1;

                if (t == 0)
                {
                    TableCell tcKV = new TableCell();
                    tcKV.RowSpan = rowspan[k];
                    tcKV.BorderStyle = BorderStyle.Solid;
                    tcKV.BorderWidth = 1;
                    tcKV.BorderColor = System.Drawing.Color.Black;
                    tcKV.Text = lstKV[k].ToString();
                    tr.Cells.Add(tcKV);
                }

                TableCell tcKA = new TableCell();
                tcKA.BorderStyle = BorderStyle.Solid;
                tcKA.BorderWidth = 1;
                tcKA.BorderColor = System.Drawing.Color.Black;
                tcKA.Text = lstKA[t].ToString();
                tr.Cells.Add(tcKA);

                for (int i = 0; i < lstA.Count; i++)
                {
                    TableCell tct = new TableCell();
                    tct.BorderStyle = BorderStyle.Solid;
                    tct.BorderWidth = 1;
                    tr.Cells.Add(tct);
                }
                tblprozent.Rows.Add(tr);
            }

            for (int j = 0; j < lstKA.Count; j++)
            {
                for (int i = 0; i < lstA.Count; i++)
                {
                    if (dtRatings.Rows.Contains(new object[] { lstKV[k], lstKA[j], lstA[i] }))
                    {
                        TextBox txt = new TextBox();
                        txt.Width = 100;
                        zelle = j == 0 ? i + 2 : i + 1;
                        txt.ID = "txt_" + zeile.ToString() + "_" + zelle.ToString();
                        tblprozent.Rows[zeile + 1].Cells[zelle].Controls.Add(txt);
                    }
                }
                zeile++;
            }
        }
    }
 

Neue Beiträge

Zurück