Toon posts:

[ASP.NET] inherit tabel cel properties?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een probleem met een ASP.NET pagina die ik in elkaar het zetten ben.
Ik heb een tabel met allerlei cellen erin. Sommige cellen geef ik een zwarte kleur zodat deze een scheiding vormen met de informatie in de cellen eronder. Nadat men verschillende opties heeft geselecteerd en de page submit, wordt via het postback principe een andere pagina geladen (in de page load zijn 2 procedures, 1 voor iedere pagina, waarvan er telkens maar 1 wordt uitgevoerd).

Het probleem is nu het volgende:
Bij het inladen van deze "2de" pagina handhaven de cellen de eigenschappen van de eerste pagina, terwijl dit niet de bedoeling is. Sommige cellen zijn automatisch zwart en hebben een bepaalde hoogte zonder dat ik dat aangegeven heb.

Waar ligt dit aan?

Alvast bedankt voor enige reactie,

Rudy Bruns

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Voorbeeld-code?

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
private void Page_Load(object sender, System.EventArgs e)
{
    myph = (PlaceHolder)Table1.Rows[0].Cells[0].Controls[0];
    mytable.Width = Unit.Percentage(100);
    myph.Controls.Add(mytable);
    if(Page.Request.Form["submitbutton"] == null)
    {
        LoadEnquete();
    }
    else 
    {
        AskConfirmation();
    }
}

private void AskConfirmation()
{
            currentRow = -1;

    currentRow = AddQuestionEnd(currentRow);
    currentRow = AddRowCell(currentRow);
    mytable.Rows[currentRow].Cells[0].HorizontalAlign = HorizontalAlign.Center;
    mytable.Rows[currentRow].Cells[0].Text = "Weet u zeker dat u de enquete wilt insturen?";
    currentRow = AddQuestionEnd(currentRow);
    currentRow = AddRowCell(currentRow);
    mytable.Rows[currentRow].Cells[0].HorizontalAlign = HorizontalAlign.Center;
}


private int AddQuestionEnd(int row)
{
    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].Height = 10;
    mytable.Rows[row].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[row].Cells[0].Text = "";

    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].BackColor = Color.Black;
    mytable.Rows[row].Cells[0].Height = 2;

    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].Height = 10;
    mytable.Rows[row].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[row].Cells[0].Text = "";

    return row;
}


In LoadEnquete wordt mytable gevuld met een enquete, vervolgens wordt bij het gebruiken van de submitbutton de askConfirmation procedure geladen. Dat werkt allemaal goed. De addQuestionEnd methode wordt bij LoadEnquete ook gebruikt. Hier worden bepaalde cellen zwart mee gekleurd.

Het probleem is nu dat bij de AskConfirmation-"pagina" sommige tabel-cellen automatisch zwart zijn. Ergens wordt dus onthouden dat bepaalde cellen zwart waren en nieuwe cellen die op dezelfde plek waren aangemaakt kleuren ook zwart....

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Verwijderd schreef op 17 mei 2004 @ 13:16:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
private void Page_Load(object sender, System.EventArgs e)
{
    myph = (PlaceHolder)Table1.Rows[0].Cells[0].Controls[0];

    // Op deze plek wil je mytable toch "leeg" hebben?
    // 2 manieren:
    // mytable = new Table();
    // of
    // mytable.Rows.Clear();

    mytable.Width = Unit.Percentage(100);
    myph.Controls.Add(mytable);
    if(Page.Request.Form["submitbutton"] == null)
    {
        LoadEnquete();
    }
    else 
    {
                        AskConfirmation();
    }
}

private void AskConfirmation()
{
            currentRow = -1;

    currentRow = AddQuestionEnd(currentRow);
    currentRow = AddRowCell(currentRow);
    mytable.Rows[currentRow].Cells[0].HorizontalAlign = HorizontalAlign.Center;
    mytable.Rows[currentRow].Cells[0].Text = "Weet u zeker dat u de enquete wilt insturen?";
    currentRow = AddQuestionEnd(currentRow);
    currentRow = AddRowCell(currentRow);
    mytable.Rows[currentRow].Cells[0].HorizontalAlign = HorizontalAlign.Center;
}


/*
private int AddQuestionEnd_oud(int row)
{
    // Wat is row? Een index of een TableRow?
    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].Height = 10;
    mytable.Rows[row].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[row].Cells[0].Text = "";

    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].BackColor = Color.Black;
    mytable.Rows[row].Cells[0].Height = 2;

    row = AddRowCell(row);
    mytable.Rows[row].Cells[0].Height = 10;
    mytable.Rows[row].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[row].Cells[0].Text = "";

    return row;
}
*/

// Wordt dus:
private int AddQuestionEnd(int rowNr)
{
    row = AddRowCell(rowNr);
    mytable.Rows[rowNr].Cells[0].Height = 10;
    mytable.Rows[rowNr].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[rowNr].Cells[0].Text = "";

    row = AddRowCell(rowNr);
    mytable.Rows[rowNr].Cells[0].BackColor = Color.Black;
    mytable.Rows[rowNr].Cells[0].Height = 2;

    row = AddRowCell(rowNr);
    mytable.Rows[rowNr].Cells[0].Height = 10;
    mytable.Rows[rowNr].Cells[0].BackColor = Color.Transparent;
    mytable.Rows[rowNr].Cells[0].Text = "";

    return row;
}

[ Voor 3% gewijzigd door Riegstar op 17-05-2004 13:54 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 05:53

gorgi_19

Kruimeltjes zijn weer op :9

Gekke vraag misschien, maar waarom zet je geen eventhandler op je submitbutton? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo