Avatar billede c-sharp Nybegynder
10. maj 2005 - 13:40 Der er 6 kommentarer og
1 løsning

Hjælp til fejl i repeater

Jeg får følgende fejl i min repeater:

Kompileringsfejl

Beskrivelse: Der opstod en fejl under kompilering af en ressource, der er påkrævet ved behandling af denne anmodning. Læs følgende detaljer om fejlen, og foretag de nødvendige ændringer af kildekoden.

Fejlmeddelelse om kompileringsfunktion: CS0117: 'System.Web.UI.Control' indeholder ikke en definition af 'DataItem'

Linje 44:                         </tr>
Linje 45:                         <tr>
Linje 46:                             <td class="tekst_overskrift"><%# DataBinder.Eval(Container.DataItem, "navn") %></td>
Linje 47:                         </tr>
Linje 48:                         <tr>

Hvad er der galt?
Avatar billede snepnet Nybegynder
10. maj 2005 - 13:45 #1
prøv at pak det ind i en label og sæt teksten til dit databindingsudtryk.
mvh
Avatar billede c-sharp Nybegynder
10. maj 2005 - 15:03 #2
er det sådan her du mener:

Linje 44:                         </tr>
Linje 45:                         <tr>
Linje 46:                             <td class="tekst_overskrift"><asp:Label id="navn" Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>' Runat="Server"/></td>
Linje 47:                         </tr>
Linje 48:                         <tr>

for så får jeg stadig samme fejl.
Avatar billede snepnet Nybegynder
10. maj 2005 - 15:57 #3
hey c# - kan du ikke sende hele repeateren + den kode du bruger når du databinder.
mvh
Avatar billede c-sharp Nybegynder
10. maj 2005 - 16:54 #4
Hej snepnet!

Min repeater er en stor mundfuld for jeg bruger nested repeater, men her kommer det...

ASPX

                <asp:Repeater ID="overRepeater" Runat="Server"/>
                    <ItemTemplate>
                        <tr>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td class="tekst_overskrift"><asp:Label id="navn" Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>' Runat="Server"/></td>
                        </tr>
                        <tr>
                            <td style="height: 5px"><img src="images/space.gif" style="width: 1px; height: 0px" alt=""></td>
                        </tr>
                        <tr>
                            <td style="width: 100%">
                                <table style="width: 100%">
                                    <tr>
                                        <td class="listetop" style="text-align: left"><strong>Navn</strong></td>
                                        <asp:Repeater ID="overskriftRepeater" runat="server">
                                            <ItemTemplate>           
                                                <td class="listetop"><strong><%# DataBinder.Eval(Container.DataItem, "navn") %></strong></td>
                                            </ItemTemplate>           
                                        </asp:Repeater>
                                    </tr>
                                    <asp:Repeater ID="produktRepeater" runat="server">
                                        <ItemTemplate>
                                            <tr style="background-color: #CBCBCB" onclick="location.href='visprodukt.aspx?hovedkatid=<%=hovedkatId.Text%>&underkatid=<%=underkatId.Text%>&underkatnavn=<%=brod_krumme_under.Text%>&hovedkatnavn=<%=brod_krumme_hoved.Text%>&produktid=<%# DataBinder.Eval(Container.DataItem, "produktid") %>'" onmouseover="changeBg(this,true);" onmouseout="changeBg(this,true)">
                                                <td class="liste" style="text-align: left" ><%# DataBinder.Eval(Container.DataItem, "navn") %></td>
                                           
                                                <asp:Repeater ID="linieRepeater" Runat="Server">
                                                    <ItemTemplate>
                                                        <td class="liste"><%# DataBinder.Eval(Container.DataItem, "vaerdie") %></td>
                                                    </ItemTemplate>
                                                </asp:Repeater>
                                            </tr>
                                        </ItemTemplate>
                                       
                                        <AlternatingItemTemplate>
                                            <tr style="background-color: #EEEEEE" onclick="location.href='visprodukt.aspx?hovedkatid=<%=hovedkatId.Text%>&underkatid=<%=underkatId.Text%>&underkatnavn=<%=brod_krumme_under.Text%>&hovedkatnavn=<%=brod_krumme_hoved.Text%>&produktid=<%# DataBinder.Eval(Container.DataItem, "produktid") %>'" onmouseover="changeBg(this,false);" onmouseout="changeBg(this,false)">
                                                <td class="listealt" style="text-align: left"><%# DataBinder.Eval(Container.DataItem, "navn") %></td>
                                           
                                                <asp:Repeater ID="linieRepeater" Runat="Server">
                                                    <ItemTemplate>
                                                        <td class="listealt"><%# DataBinder.Eval(Container.DataItem, "vaerdie") %></td>
                                                    </ItemTemplate>
                                                </asp:Repeater>
                                            </tr>                               
                                        </AlternatingItemTemplate>
                                                   
                                    </asp:Repeater>
                                </table>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>


CS

I Pageload
                    string sqlOver =    "SELECT DISTINCT produkt.underkatId, underkategoriData.navn " +
                        "FROM underkategoriData INNER JOIN " +
                        "produkt ON underkategoriData.underkatId = produkt.underkatId INNER JOIN " +
                        "produktData ON produkt.produktId = produktData.produktId " +
                        "WHERE produktData.aktiv = 1 AND (produktData.navn LIKE '%" + soegeord.Text + "%') ";

                    string sqlProduktData = "SELECT produktdata.produktId, produktdata.navn, underkatId " +
                        "FROM produkt INNER JOIN produktdata ON " +
                        "produkt.produktId = produktdata.produktId " +
                        "WHERE aktiv = 1;";

                    string sqlSpecifikation =     "SELECT    specifikation.specId, specifikationsData.navn, underKatSpec.underkatId " +
                                                "FROM        underKatSpec INNER JOIN " +
                                                "specifikation ON underKatSpec.specId = specifikation.specId INNER JOIN "+
                                                "specifikationsData ON specifikation.specId = specifikationsData.specId " +
                                                "WHERE    (underKatSpec.medtagesIOversigt = 1) ";

                    string sqlBeskrivelse = "SELECT vaerdie, beskrivelse.produktId, specId, underkatId " +
                        "FROM beskrivelse INNER JOIN " +
                        "produkt ON beskrivelse.produktId = produkt.produktId " +
                        "WHERE (beskrivelse.produktId IN " +
                        "(SELECT produkt.produktId " +
                        "FROM produkt INNER JOIN " +
                        "produktData ON produkt.produktId = produktData.produktId " +
                        "WHERE produktData.aktiv = 1 AND produktData.navn LIKE '%" + soegeord.Text + "%')) AND (specId IN " +
                        "(SELECT specId " +
                        "FROM underkatspec " +
                        "WHERE  medtagesIOversigt = 1))";

                    DataSet ds = SqlHelper.ExecuteDataset(connStr, CommandType.Text, sqlOver + sqlProduktData + sqlSpecifikation + sqlBeskrivelse);

                    DataRelation relation = new DataRelation("underkatId", ds.Tables["Table"].Columns["underkatId"], ds.Tables["Table1"].Columns["underkatId"]);
                    ds.Relations.Add(relation);

                   
                    DataRelation relation1 = new DataRelation("underkatId1", ds.Tables["Table"].Columns["underkatId"], ds.Tables["Table3"].Columns["underkatId"]);
                    ds.Relations.Add(relation1);

                    DataRelation relation2 = new DataRelation("produktId", ds.Tables["Table1"].Columns["produktId"], ds.Tables["Table3"].Columns["produktId"]);
                    ds.Relations.Add(relation2);

                    overRepeater.DataSource = ds.Tables["Table"].DefaultView;
                    overRepeater.DataBind();


        private void overRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                ((Repeater) e.Item.FindControl("overskriftRepeater")).DataSource = ((DataRowView) e.Item.DataItem).CreateChildView("underkatId1");
                ((Repeater) e.Item.FindControl("overskriftRepeater")).DataBind();

                ((Repeater) e.Item.FindControl("produktRepeater")).DataSource = ((DataRowView) e.Item.DataItem).CreateChildView("underkatId");
                ((Repeater) e.Item.FindControl("produktRepeater")).DataBind();
            }
        }

        private void produktRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                ((Repeater) e.Item.FindControl("linieRepeater")).DataSource = ((DataRowView) e.Item.DataItem).CreateChildView("produktId");
                ((Repeater) e.Item.FindControl("linieRepeater")).DataBind();

            }
        }

Jeg håber du kan overskue det!
Avatar billede snepnet Nybegynder
10. maj 2005 - 17:20 #5
tak spids ... ja der var da lidt at gå ombord i - godt at se at du får gået til makronerne ;o)

nå - men jeg tror at din fejl er, at du afslutter din første repeater med det samme :
<asp:Repeater ID="overRepeater" Runat="Server"/>

mon ikke det holder hvis du fjerne / altså sådan her :
<asp:Repeater ID="overRepeater" Runat="Server">

mvh
Avatar billede c-sharp Nybegynder
11. maj 2005 - 14:11 #6
Jeg havde vist stirret mig blid på det kode ;-)

Snepnet tusind tak for hjælpen, smid et svar så er der velfortjente point!
Avatar billede snepnet Nybegynder
11. maj 2005 - 23:47 #7
hej igen c# - du får et svar her :o)
mvh
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