[ASP.NET; C#] Datagrids genereren in tabel (oid)

Pagina: 1
Acties:

  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Ik heb een applicatie die op een gegeven moment een getal in de vorm van een integer beschikbaar heeft.
Het is de bedoeling dat er <getal> datagrids op de pagina verschijnen (deze datagrids worden gegenereerd en gebind aan evenveel beschikbare datatables).

Het probleem is het het volgende:
Die datagrids kan ik natuurlijk één voor één hard in een Panel (of placeholder?) rammen, maar dat wil ik niet. Ik wil namelijk dat een soort van Table, rij voor rij, gevuld wordt met deze datagrids.

- HtmlTable en Table is het sowieso niet ivm toevoegen controls (toch?)
- Panel is het niet ivm geen kolommen en rijen

Misschien dan één überdatagrid gebruiken waar de andere datagrids in komen te staan?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

Door middel van dynamische controls datagrids toevoegen?
ASP.NET:
1
2
3
4
5
6
7
8
9
10
Private Sub InitPage(sender as object, e as EventsArgs) Handles Mybase.Init
    For I as integer = 1 to 5

        Dim dg as Datagrid = new Datagrid()
        dg.ID = "Datagrid_" & I
        .....
        Controls.Add(dg)

    Next
End sub

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Mja, en komen ze dan ook keurig in een tabelletje te staan automatisch? :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

AppleWatcher schreef op 16 juni 2004 @ 23:00:
Mja, en komen ze dan ook keurig in een tabelletje te staan automatisch? :?
Dat kan, als je er boven en onder een literalcontrol zet met de table / span tags.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Hmz. Wat denk je ervan om datagrids toe te voegen aan één datagrid?
Zit al een tijdje mee te prutsen.. Maar je kunt aan een datagrid @ runtime kolommen toevoegen, maar rijen niet (iig niet zoals bij een DataTable)?

Dus hoe voeg ik controls (datagrids) toe in bepaalde cellen van een datagrid?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

AppleWatcher schreef op 17 juni 2004 @ 00:12:
Hmz. Wat denk je ervan om datagrids toe te voegen aan één datagrid?
Zit al een tijdje mee te prutsen.. Maar je kunt aan een datagrid @ runtime kolommen toevoegen, maar rijen niet (iig niet zoals bij een DataTable)?

Dus hoe voeg ik controls (datagrids) toe in bepaalde cellen van een datagrid?
Je kan bij een datagrid best @ runtime rijen toevoegen; datasource feeden met nieuwe data en opnieuw binden.
Alleen: wat is er mis mij mijn eerdere methodiek? Als je het op jouw manier wilt oplossen, zul je met een templatecolumn moeten werken. In die templatecolumn zet je vervolgens weer een datagrid.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
OK.
Ik heb nu met de designer een datagrid toevoegd. Aan die datagrid heb ik twee templatecolumns toevoegd, één met headertext col1 en één met headertext col2.

verder gebeurt er bij de pageload het volgende

C#:
1
2
3
4
5
6
7
TextBox woei = new TextBox();
woei.Text="bla";
TemplateColumn bla = new TemplateColumn();
bla.HeaderText="col1";
maingrid.Columns.Add(bla);
maingrid.Controls.Add(woei);
maingrid.DataBind();


..waarbij ik de volgende vragen heb:

- waarom kan ik niet controls aan een kolom toevoegen (ben ik iets vergeten?)
- hoe voeg ik rijen toe? maingrid.Rows bestaat niet; en maingrid.newRow (net als bij een DataTable) ook niet. Ik heb het idee dat ik iets vreselijk over het hoofd zie. Maar wat?


edit: de textbox in de code wordt uiteindelijk natuurlijk een datagrid.
edit2: de textbox noch de datagrid verschijnen op de pagina.

[ Voor 15% gewijzigd door hwschuur op 17-06-2004 19:53 ]


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Waar het dus eigenlijk op neerkomt:

Ik genereer controls (in dit geval dus datagrids maar dat maakt niet uit) en die wil ik gewoon geordend op een pagina tonen. Met geordend bedoel ik in tabelvorm.

Dit gaat met de eerste suggestie van gorgi niet werken omdat je dan niet de controle hebt over waar een control komt (qua rij/kolom-positie). Of je moet extreem met literalcontrols gaan prutsen... Maar volgens mij moet het anders kunnen. Suggesties? Hoe orden je gegenereerde controls?

edit:
Misschien werkt zoiets:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// C#
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
   // Get the number of labels to create.
   int numlabels = System.Convert.ToInt32(DropDownList1.SelectedItem.Text);
   for (int i=1; i<=numlabels; i++)
   {
      Label myLabel = new Label();
      // Set the label's Text and ID properties.
      myLabel.Text = "Label" + i.ToString();
      myLabel.ID = "Label" + i.ToString();
      PlaceHolder1.Controls.Add(myLabel);
      // Add a spacer in the form of an HTML <BR> element.
      PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
   }
}

[ Voor 41% gewijzigd door hwschuur op 17-06-2004 21:00 ]

Pagina: 1