Avatar billede mema Nybegynder
10. april 2008 - 10:39

Vis og skjul af data fra databasen i en Repeater

Hej
jeg har en Repeater, der henter ord og deres betydning fra en sql-database. Det viser en efter en (efter at jeg har valgt med hvilke bogstav skal ordet begynde). Fx hvis jeg vælger 'A' i dropdownlist, så viser aller forekomst af ord, der begynder med et 'A'. Nederst viser det også deres betydning fra et andet felt i databasen (Betydning).
Det jeg gerne vil have er , at vise betydning af et ord, kun når jeg klikker på ordet, og når jeg vælge et andet ord, så heller skjules den tidligere valgte betydning.

Her er lidt kode:

aspx filen:
----------
....
....
<body>
<form id="form1" runat="server">
<div>
<p>
<asp:Literal ID="ltVaelgDic" runat="server" Text="Vælg Dictionary"></asp:Literal>
</p>
<asp:RadioButtonList ID="radioVaelgDic" runat="server"
RepeatDirection="Horizontal">
<asp:ListItem Selected="True" Value="da-DK">Dansk</asp:ListItem>
<asp:ListItem Value="en-US">Engelsk</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:DropDownList ID="ddlBogstav" runat="server">
<asp:ListItem Selected="True">-- Begyndelsesbogstav --</asp:ListItem>
<asp:ListItem>A</asp:ListItem>
<asp:ListItem>B</asp:ListItem>
<asp:ListItem>C</asp:ListItem>
<asp:ListItem>D</asp:ListItem>
</asp:DropDownList>
<br />
<asp:Button ID="btnFind" runat="server" Text="  Find  " onclick="btnFind_Click" />
<br />
<asp:Label ID="lblAntalForekomst" runat="server"></asp:Label>
<br />
<asp:Repeater ID="rpOrdList" runat="server">
<ItemTemplate>
<b><asp:LinkButton ID="hyperOrd" runat="server" Text='<%# Eval("Ord") %>'></asp:LinkButton></b>
<ul>
<asp:Label ID="lblBetydning" runat="server" Text='<%# Eval("Betydning") %>'></asp:Label>
</ul>
</ItemTemplate>
</asp:Repeater>
....
-----------

aspx.cs filen
-------------
....
....
....
private void rpOrdList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DictionaryItem dicItem = (DictionaryItem)e.Item.DataItem;

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//Laver en reference til 2 controller som er i repeater
LinkButton hyperOrd = (LinkButton)e.Item.FindControl("hyperOrd");
Label lblBetydning = (Label)e.Item.FindControl("lblBetydning");

if (dicItem.Ord.IndexOf(ddlBogstav.SelectedItem.Value.ToLower()) == 0)
{               
hyperOrd.Text = dicItem.Ord;
lblBetydning.Text = dicItem.OrdDefinition;
lblBetydning.Visible = false;
//her skal jeg have en måde på, hvor der betydning af et ord kan vises og skjules, når man klikker på ordet
????
????
????
                     
//tæler antal forekomst af ord, der begynder med a,b...
counter++;
}
else
{
hyperOrd.Text = "";
lblBetydning.Text = "";
}
}
}

protected void btnFind_Click(object sender, EventArgs e)
{
//Get a connection to the database
DataBaseManager dbManager = new DataBaseManager();
//Get data from database
List<DictionaryItem> list = dbManager.GetOrdOgBetydning(radioVaelgDic.SelectedValue.ToString());
rpOrdList.DataSource = list;
rpOrdList.DataBind();
this.lblAntalForekomst.Text = "Der er fundet " + "<strong>" + counter + "</strong>" + " forekomst.";
}
}
}
....
....
---------------------
jeg bruger VS 2008 og bruger også Generics (det er jeg nødt til, selv om selv ikke ved meget om det! Jeg ved bare at de er en slags type-sikker ArrayList)
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