Hej, jeg har en DataList (ASP.NET 1.1) som viser 7 felter hentet fra databasen. Hvis værdi på felt 1 er 'true' så skal der kun vises 5 felter i datalistens itemtemplate. Templaten består både af statisk tekst og felter bundet værdierne fra databasen. Hvordan går jeg ind og manipulerer templaten runtime? ... eller hvordan ændrer jeg mit design så ovenstående er muligt.
der er flere niveauer af den slags ... den simpleste er, hvis du abbonnerer på itemdatabound-eventet på din datalist, og gør det der skal gøre i forbindelse med databinding.
void _Default_ItemDataBound(object sender, DataListItemEventArgs e) { if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // får fat i de data der benyttes som datagrund... benytter du f.eks. en datatable: DataRowView view = e.Item.DataItem as DataRowView; // spørg på en værdi i datagrundlaget: if((bool)view[1] == true) { // her indsætter du så det der skal bruges TextBox tb = new TextBox(); tb.Text = view[5].ToString(); e.Item.Controls.Add(tb); ... } } }
du kan jo lige prøve noget i den stil til at starte med.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.