Avatar billede maxikoll Nybegynder
20. februar 2004 - 12:41 Der er 4 kommentarer og
1 løsning

DataList og custom udseende

Jeg har en DataList som fint lister en hjemmebikset tabel, det er fint nok, men mit problem er at der er nogle knapper der kan trigger forskellige ting. Knapper som f.eks. ret / slet osv.

Nu er det sådan at hvis f.eks. værdien af en af de rækker den skriver ud er tom i et af felterne skal den ikke "rendere" den ene knap. Eller siger man at der er et bit felt i tabellen hvor dem der er 1 er "låste". Når de er det må ret / slet knapperne ikke være synlige.

Hvordan gør man det? Det skal vel laves når man binder? Eller skal man lave en eller anden funktion der køres i hvert loop? Jeg er snart lost :)
Avatar billede roger Nybegynder
20. februar 2004 - 13:06 #1
Du f.eks. have knapper visible eller ikke visible som default. Når du databinder (ItemDataBound) kan du så chekce på de værdier du skal, og dernæst visible eller ej.

Brug f.eks. en repeater.
Avatar billede maxikoll Nybegynder
20. februar 2004 - 14:59 #2
Ja, det ser ud til man kan det, men hvad når den værdi man skal tjekke på ikke bliver skrevet ud i DataList'en? Jeg binder ligesom var det et DataGrid.

Findes der et hurtigt ekspempel med ItemDataBound og evt. If / Else / End If osv. der i?
Avatar billede maxikoll Nybegynder
20. februar 2004 - 15:22 #3
Kan man på nogen måder i .aspx filen lave noget If / End If omkring:
<%# GetExpandButton(Container.DataItem("Text")) %>

GetExpandButton ville så returnere True/False
Avatar billede roger Nybegynder
21. februar 2004 - 20:52 #4
aspx filen:

<asp:DataList id="minDataList" runat="server">
<ItemTemplate>
<asp:Button id="minRetButton" runat="server" Text="Ret"></asp:Button>
<asp:Button id="minSletButton" runat="server" Text="Slet"></asp:Button>
</ItemTemplate>
</asp:DataList>


Codebehind:

private void minDataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e) {
  if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){
    //if ditten, if datten
    Button retBtn = (Button)e.Item.FindControl("minRetButton");
    Button sletBtn = (Button)e.Item.FindControl("minSletButton");
  }
}


protected override void OnInit(EventArgs e){
  minDataList.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(minDataList_ItemDataBound);
  base.OnInit(e);
}


Det samme kunne du gøre ved ItemCommand eventen, og evt. give dine knapper nogle CommandArguments
Avatar billede maxikoll Nybegynder
26. februar 2004 - 15:44 #5
Det var sådan :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester