Avatar billede ktolbod Nybegynder
16. maj 2006 - 15:49 Der er 10 kommentarer og
1 løsning

Datalist og SqlDataSource?

Hej,
Jeg har en datalist, som har en sqldatasource.
I event'et ItemDataBound vil jeg gerne tjekke en værdi fra sqldatasourcen (Skal tjekke om en checkbox skal være 'checked'), men hvordan hiver jeg fat i værdien fra ItemDataBound?

function som vwd laver ser jo sådan ud:
Protected Sub DataList1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
Avatar billede thrytter Nybegynder
16. maj 2006 - 19:05 #1
Vil mene at følgende virker hvis det placeres i DataList1_ItemDataBound

Dim cb As CheckBox
Dim bChecked As Boolean

Select Case e.Item.ItemType
  Case ListItemType.Item, ListItemType.AlternatingItem
    cb = CType(e.Item.FindControl("_CheckBox_"), CheckBox)
    bChecked= CType(CType(e.Item.DataItem, DataRowView).Item("_KolonneNavn_"),Boolean)
    cb.Checked = bChecked
End Select

Du kan også "checke" checkboxen i aspx-koden ved:
<asp:CheckBox Runat="server" ID="xxx Checked='<%# Container.DataItem("_KolonneNavn_")%>'></asp:CheckBox>
Avatar billede thrytter Nybegynder
16. maj 2006 - 19:07 #2
Sidstnævnte skulle have været:
<asp:CheckBox Runat="server" ID="xxx" Checked='<%# Container.DataItem("_KolonneNavn_")%>'></asp:CheckBox>
Avatar billede lyngzo Nybegynder
17. maj 2006 - 01:12 #3
du kan blot tage fate i dataitem

dim dr as datarow = (daterow) e.dataitem

så ka ndu til gå felterne i datarow således

dions s as string = dr["feltnavn"].tostring()
Avatar billede thrytter Nybegynder
17. maj 2006 - 08:14 #4
lyngzo>> Min kommentar 19:05:29 tager fat i DataItem !!!
Avatar billede ktolbod Nybegynder
17. maj 2006 - 11:00 #5
Hej og tak,
jeg bruger thrytter eksempel, da jeg får syntaks fejl i lyngzo eksempel.
Lyngzo: Hvordan kan du dim'e en datarow, det virker som en ret smart måde at gøre det på, men jeg får somsagt syntaksfejl og intellisense kender heller ikke til datarow?
Avatar billede lyngzo Nybegynder
17. maj 2006 - 17:54 #6
Du skal blot importere System.data namespacet

eller dim myDataRow as System.data.datarow

jeg er ikke så stiv vb.net da jeg er C# kodekarl 

så hvis du starter med System.Data. skulle du kunne dotte dig frem til alle "data" datatyper
Avatar billede lyngzo Nybegynder
17. maj 2006 - 17:56 #7
og de kommer i intellisense
Avatar billede thrytter Nybegynder
17. maj 2006 - 19:23 #8
lyngzo>> Prøv lige at teste om "DataRow dr = (DataRow) e.DataItem" virker i din C# verden, for det gør det ikke lige i min og jeg har en reference til System.Data.

DataRowView drv = (DataRowView) e.Item.DataItem;

virker i min C# verden.
Avatar billede lyngzo Nybegynder
17. maj 2006 - 19:30 #9
sorry havde lige tankerne et andet sted

den her holder

DataRowView dr = (DataRowView)e.Item.DataItem;

Så kan du tilgå data således :

dr["ditfeltnavn"].ToString()

du skal parse værdierne over i den datatype du skal bruge

int i = int.Parse(dr["ditfeltnavn"].ToString())  hvis dit felt er integer og du skal regne på det
Avatar billede thrytter Nybegynder
17. maj 2006 - 19:47 #10
Eller i VB:

Dim drv As DataRowView
Dim bChecked As Boolean

drv = CType(e.Item.DataItem, DataRowView)
bChecked = CType(drv.Item("_KolonneNavn_"), Boolean)

som kan sammenskrives til:
bChecked= CType(CType(e.Item.DataItem, DataRowView).Item("_KolonneNavn_"),Boolean)

som jeg også skrev i min første kommentar!
Avatar billede ktolbod Nybegynder
18. maj 2006 - 08:48 #11
Jeg arbejder med vb og bruger thrytter's sidste svar. Det er super sejt og bedst af alt- det giver mening :)

Tak for hjælpen
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