Avatar billede decrypto Nybegynder
14. april 2006 - 14:46 Der er 29 kommentarer og
1 løsning

Antal childElements mellem en parent DataTable og childDataTable

Er der muligheder for at se, hvor mange ChildElements en parentDataTable har????
Avatar billede dr_chaos Nybegynder
14. april 2006 - 14:56 #1
hvad mener du præcist ?
Avatar billede decrypto Nybegynder
14. april 2006 - 14:58 #2
Okay very simple. Jeg har to DataTables, lad os bare kalde dem 'parentDataTable' og 'childDataTable'.

Relationerne mellem dem er etableret.

Jeg har en uudfyldkolonne i 'parentDataTable' ved navn 'AntalChild', som jeg faktisk gerne vil have udfyldt med det antal child elementer parent har.

Hvordan gør jeg det smartest og nemmest?
Avatar billede dr_chaos Nybegynder
14. april 2006 - 15:03 #3
Som sql vil det se ud på denne måde:
SELECT dt.ID, COUNT(dt2.ID) FROM DataTable1 dt INNER JOIN DataTable2 dt2 ON dt2.ID = dt.ID GROUP BY dt.ID
Avatar billede decrypto Nybegynder
14. april 2006 - 15:07 #4
Hej dr_chaos. Jeg er glad for din hjælp....jeg fik ret meget inspiration fra dig...jeg kan set at du har smidt en ny kommentar ind, som jeg måske kan bruge her...

brandCatalog.Items.Count skal jeg bruge til at til at lave en rowspan med.

Men i min 'HTML' kan jeg kun binde variabler vha. 'Eval("")' eller hvad... det nemmeste ville måske være at det som jeg prøver nu, at lave en ny kolonne med antal child og så bare føre den ind i min rowspan.
Avatar billede decrypto Nybegynder
14. april 2006 - 15:08 #5
Skal jeg skrive noget sql for at hive info ud af datasets?
Avatar billede decrypto Nybegynder
14. april 2006 - 15:16 #6
jeg prøver også det som du har skrevet i mit andet indlæg i min onItemBound.
Repeater r = new Repeater();
int count = r.Items.Count;

men min count er altid 0 ()
Avatar billede decrypto Nybegynder
14. april 2006 - 15:19 #7
hmmm den der count virker ikke.... så jeg bakker bagud igen.

Hvis jeg efter relationen mellem disse to datatables kan fylde en kolonne i mit parentDataTable ud med antal child, så er jeg med 100% helt på sikker bane.
Avatar billede decrypto Nybegynder
14. april 2006 - 15:21 #8
Så jeg skal lave en:

brandDataTable.Columns["BrandChildElements"] = SELECT dt.ID, COUNT(dt2.ID) FROM DataTable1 dt INNER JOIN DataTable2 dt2 ON dt2.ID = dt.ID GROUP BY dt.ID

eller hvad?
Avatar billede decrypto Nybegynder
14. april 2006 - 15:34 #9
Jeg ved jeg er rigtig dårlig til det her....
Avatar billede decrypto Nybegynder
14. april 2006 - 15:52 #10
Kan jeg muligvis ikke bruge view.RowFilter til at give mig en count???
Avatar billede decrypto Nybegynder
14. april 2006 - 16:10 #11
Det er ret simpelt, men det svært for mig at lave...

Min BrandTable skal bare se således ud:
--------------
|Brand1|  1  |
|Brand2|  1  |
|Brand3|  2  |
--------------

Anden kolonne er naturligvis antal childElements.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:15 #12
r skal selvfølgelig erstattes med dinrepeater.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:20 #13
det er meget muligt at view.RowFilter kan bruges til counts.

Men du bør kunne sætte rowsspan med RowsSpan='<%# BrandRepeater.Items.Count %>'
Avatar billede decrypto Nybegynder
14. april 2006 - 16:22 #14
Jeg prøvede med min egen repeater....prøver lige din notation.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:26 #15
ok
Du kan evt paste aspx koden her.
Avatar billede decrypto Nybegynder
14. april 2006 - 16:28 #16
hmmm problemet er bare at min rowspan ligger uden om min repeater.

Det er faktisk ProductGroupRepeater, der bestemmer antal rowspans, og det kan jeg ikke skrive udenfor min ProductGroupRepeater, da jeg får en fejl om at:

The name 'ProductGroupCatalog' does not exist in the current context   

Det er osgå irritererende at jeg ikke smide sådan nogle ting ind i ProductGroupRepeaters HeaderTemplate.
Avatar billede decrypto Nybegynder
14. april 2006 - 16:32 #17
----------------------------Kode---------------------------
  <asp:Repeater ID="brandCatalog" runat="server" OnItemDataBound="brandCatalog_ItemDataBound">
    <ItemTemplate>
        <tr>
          <td rowspan='<%# productGroupCatalog.Items.Count %>' valign="top"><%# Eval("brandName")%></td>
          <asp:Repeater id="productGroupCatalog" runat="server" OnItemDataBound="productGroupCatalog_ItemDataBound" >               
              <ItemTemplate>
                    <td><%# Eval("productGroupName")%></td>
                   
                    <asp:Repeater ID="productCatalog" runat="server">
                      <ItemTemplate>                     
                          <td><%# Eval("productName")%></td>
                      </ItemTemplate>

                    </asp:Repeater>           
              </ItemTemplate>
          </asp:Repeater> 
    </ItemTemplate>
  </asp:Repeater>
Avatar billede decrypto Nybegynder
14. april 2006 - 16:33 #18
Hvis jeg 'bare' kunne smide
'<td rowspan='<%# productGroupCatalog.Items.Count %>' valign="top"><%# Eval("brandName")%></td>' ind i 'productGroupCatalog' repeaters HeaderTemplate, så ville den kunne genkende min rowspan længde.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:34 #19
du kan gøre noget i denne stil:
<asp:Repeater ID="brandCatalog" runat="server" OnItemDataBound="brandCatalog_ItemDataBound">
    <ItemTemplate>
        <tr>
          <td id="" rowspan='<%# productGroupCatalog.Items.Count %>' valign="top"><%# Eval("brandName")%></td>
          <asp:Repeater id="productGroupCatalog" runat="server" OnItemDataBound="productGroupCatalog_ItemDataBound" >             
              <ItemTemplate>
                    <td><%# Eval("productGroupName")%></td>
                 
                    <asp:Repeater ID="productCatalog" runat="server">
                      <ItemTemplate>                   
                          <td><%# Eval("productName")%></td>
                      </ItemTemplate>

                    </asp:Repeater>         
              </ItemTemplate>
          </asp:Repeater>
    </ItemTemplate>
  </asp:Repeater>
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:34 #20
2 sec
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:35 #21
<asp:Repeater ID="brandCatalog" runat="server" OnItemDataBound="brandCatalog_ItemDataBound">
    <ItemTemplate>
        <tr>
          <td id="tdP" Runat="Server" rowspan='<%# productGroupCatalog.Items.Count %>' valign="top"><%# Eval("brandName")%></td>
          <asp:Repeater id="productGroupCatalog" runat="server" OnItemDataBound="productGroupCatalog_ItemDataBound" >           
              <ItemTemplate>
                    <td><%# Eval("productGroupName")%></td>
               
                    <asp:Repeater ID="productCatalog" runat="server">
                      <ItemTemplate>                 
                          <td><%# Eval("productName")%></td>
                      </ItemTemplate>

                    </asp:Repeater>       
              </ItemTemplate>
          </asp:Repeater>
    </ItemTemplate>
  </asp:Repeater>
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:36 #22
i productGroupCatalog_ItemDataBound
kan du bruge productGroupCatalog.Parent.FindControl("tdP")
og sætte rows span der.

Men du skal omdanne din td osv til en asp:table.
Det vil være nemmere.
Avatar billede decrypto Nybegynder
14. april 2006 - 16:37 #23
hmmm det kan være at det vi prøver på også er forkert, da det virker som om den bare tæller op, istedet for at nulstille, når den igen kommer ud i parentrepeateren.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:39 #24
giver den fejl i 14/04-2006 16:33:39 ?
Avatar billede decrypto Nybegynder
14. april 2006 - 16:39 #25
Ok, så jeg skal lave min <table> til en asp:table og så kunne tilgå min td's rowspan via codebehind???.

hmmm jeg tror lige jeg tager en tænke pause....
Avatar billede decrypto Nybegynder
14. april 2006 - 16:40 #26
14/04-2006 16:33:39 ?
Avatar billede dr_chaos Nybegynder
14. april 2006 - 16:42 #27
ja det du skrev på det tidspunkt
Avatar billede decrypto Nybegynder
14. april 2006 - 17:28 #28
Ja, den giver fejl, har også prøvet det før....
Avatar billede decrypto Nybegynder
14. april 2006 - 20:04 #29
Nåh, jeg fik det ordnet, men på en bøvlet måde....smid bare et svar ind.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 23:43 #30
svar :)
Hvad var den bøvlet måde ?
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