Avatar billede chanlo Nybegynder
16. juni 2003 - 15:26 Der er 24 kommentarer og
1 løsning

hjælp til OnItemDataBound

hvad gør jeg galt her:


public void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    if (e.Item.DataItem["idvisning"])
    {
      ((Label)e.Item.FindControl("IDLabel")).Text= " ";
    }
    }
  }
Avatar billede burningice Nybegynder
16. juni 2003 - 15:47 #1
det er fordi at du ikke har vasket dine tær her til morgen !!

eller, kunne det være det hjalp hvis du fortalte os hvad fejlen er ?
Avatar billede burningice Nybegynder
16. juni 2003 - 15:49 #2
umiddelbart kan jeg dog forestille mig, at denne linje fejler:

if (e.Item.DataItem["idvisning"]), da det du tjekker på, næppe er af typen bool
Avatar billede chanlo Nybegynder
16. juni 2003 - 17:12 #3
*G* sorry
det er en bool !!
jeg får en fejl som siger:
'object' does not contain a definition for 'idvisning'
men den er med da jeg selecter * fra db'en
????
Avatar billede burningice Nybegynder
16. juni 2003 - 17:18 #4
hmm... der er da også noget galt... du skal skrive det sådan her:

if ((bool)e.Item.DataItem)) {

}

da DataItem returnere et object: Gets or sets a data item associated with the RepeaterItem object in the Repeater control.
Avatar billede chanlo Nybegynder
16. juni 2003 - 17:28 #5
jeg har flere en en bool....
Avatar billede burningice Nybegynder
16. juni 2003 - 17:44 #6
mon ikke det er

e.Item["idvisning"].DataItem;

du er ude efter?
Avatar billede chanlo Nybegynder
16. juni 2003 - 17:50 #7
...Specified cast is not valid..
Avatar billede burningice Nybegynder
16. juni 2003 - 17:58 #8
*kigger på klokken* hmm... du burde da ikke lige være stået op !?

if((bool)e.Item["idvisning"].DataItem) {

}
Avatar billede chanlo Nybegynder
16. juni 2003 - 18:04 #9
hvad snakker du om.....
man kan altså ikke bruge [] på repeateritems....
dit forslag er altså ved siden af
Avatar billede burningice Nybegynder
16. juni 2003 - 18:20 #10
bum, bummelum... det har du ret i, sad og kiggede på Item til Repeater-klassen... men du kan da I HVERT FALD ikke bruge det på DataItem, da det returnerer et object.

hvad med noget

if (e.Item.DataItem.GetType == typeof(bool)) {
  if ((bool)e.Item.DataItem) {
    ((Label)e.Item.FindControl("IDLabel")).Text= " ";
  }
}
Avatar billede chanlo Nybegynder
16. juni 2003 - 18:40 #11
jeg har sgu snart prøvet alt øv, skod, m.m *g*
det kunne være man skulle holde en pause...
dit forslag er ok, men alligevel ikke for 1/ jeg er nød til at have fat i 'idvisning' feltet 2/ if ((bool)e.Item.DataItem) dette er en invalid cast men hvorffor ved jeg ikke..
tak for din tålmodighed ;-)
jeg leger lidt videre...
Avatar billede burningice Nybegynder
16. juni 2003 - 18:53 #12
nu ved jeg ikke hvordan at din itemtemplate ser ud til din repeater... men du skal jo huske på, at OnItemDataBound bliver afviklet for HVERT item... dvs. at det er op til dig at finde ud af om det er det rigtige item du er kommet til.
Avatar billede chanlo Nybegynder
16. juni 2003 - 19:35 #13
den er meget simpel (bare til test inden for alvor)

<asp:Repeater id="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">
    <ItemTemplate>
    <div align="center">
      <table width="200" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td>
        <div align="center">
        <asp:Label id="IDLabel" Text='<%# DataBinder.Eval(Container.DataItem, "id") %>' Runat="server"/>
        </div>
        </td>
        <td>
        <div align="center">
        <asp:Label id=navnLabel Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>' Runat="server"/>
        </div>
        </td>
      </tr>
      </table>
    </div>
    </ItemTemplate>
  </asp:Repeater>
Avatar billede burningice Nybegynder
16. juni 2003 - 19:48 #14
hvordan i al hilen hulen har du tænkt dig at få fat i noget data, som ikke er der ?!?! der er jo ikke nogen idvisning !!
Avatar billede chanlo Nybegynder
16. juni 2003 - 20:22 #15
jo der er så (i datasættet) bare ikke i udskrivningen ....
Avatar billede burningice Nybegynder
16. juni 2003 - 20:28 #16
chanlo>> det er jo bedøvende ligegyldigt... RepeaterItemEventArgs kender KUN til det item som der er ved at blive bindet data til !
Avatar billede chanlo Nybegynder
16. juni 2003 - 20:38 #17
ok :
<asp:Repeater id="Repeater1" OnItemDataBound="R1_ItemDataBound" runat="server">
    <ItemTemplate>
    <div align="center">
      <table width="200" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td><div align="center">
          <asp:Label id="IDLabel" Text='<%# DataBinder.Eval(Container.DataItem, "id") %>' Runat="server"/>
        </div>
        </td>
        <td><div align="center">
        <asp:Label id=navnLabel Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>' Runat="server"/>
       
        </div>
      </td>
      <td><div align="center">
        <asp:Label id="idvisningLabel" Text='<%# DataBinder.Eval(Container.DataItem, "idvisning") %>' Runat="server"/>
       
        </div>
      </td>
      <td><div align="center">
        <asp:Label id="navnevisningLabel" Text='<%# DataBinder.Eval(Container.DataItem, "navnevisning") %>' Runat="server"/>
       
        </div>
      </td>
      </tr>
      </table>
    </div>
    </ItemTemplate>
  </asp:Repeater>


public void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
  {
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  {
    if (e.Item.DataItem.GetType() == typeof(bool))
    {
    ((Label)e.Item.FindControl("IDLabel")).Text= " ";
    }
  }
  }


der sker stadig ingenting, og jeg ved ikke hvordan jeg skal fange f.eks idvisning...
Avatar billede chanlo Nybegynder
16. juni 2003 - 20:41 #18
vent lige lidt der sker vist et eller andet....
Avatar billede chanlo Nybegynder
16. juni 2003 - 20:46 #19
den fanger, nu mangler jeg bare at ramme de enkelte booler og ikke alle som gøres nu...det er faktisk det der har været problemet hele tiden...
Avatar billede chanlo Nybegynder
18. juni 2003 - 15:14 #20
>>cyberfessor nu har jeg klaret det
kort fortalt sådan her:

if(navnevis.Text=="False")
{
((Label)e.Item.FindControl("navnLabel")).Visible=false;
}

tak for din tålmodighed med fjolser som mig....
send lige et svar ;-)
zez
Avatar billede burningice Nybegynder
19. juni 2003 - 14:25 #21
chanlo>> dejligt at du fik det til at virke... tit kan man ikke se skoven for bare træ'er, og der er det godt at kunne få lidt input fra andre :)
Avatar billede chanlo Nybegynder
19. juni 2003 - 14:58 #22
>>cyberfessor du er bare super og altid kanon til hjælp..
ha' det godt (til vi mødes igen *g*)
chanlo
Avatar billede chanlo Nybegynder
19. juni 2003 - 14:59 #23
jeg er lidt flov over kun 15 points......du får flere næste gang
Avatar billede burningice Nybegynder
19. juni 2003 - 15:46 #24
det gør ikke spor... jeg er her ikke for pointene :) jeg tager til grønland imorgen tidligt, så det er nok ikke meget du ser til mig de næste 6 uger, så jeg vil ønske dig en god og produktiv sommer :)
Avatar billede chanlo Nybegynder
19. juni 2003 - 16:11 #25
husk at drikke masser af øl på daddys pub... ;-) go' tur
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