Avatar billede jaffafo Nybegynder
29. oktober 2005 - 22:29 Der er 12 kommentarer og
1 løsning

Finde ud af hvilket nr. en row er

Hej

For Each row As DataRow In xmldataset.tables("bla").Rows
  'pseudokode:
  hvis modulus af rownr er 0 skal
    itemalt = "alt"
  hvis ikke
    itemalt = ""
  end hvis
next


Jeg skal bruge følgende kode for at kunne give hveranden række i mit datagrid en anden baggrundsfarve. Jeg har prøvet at bruge "alternative-itembackground", men den virker ikke :(

mvh
Avatar billede arne_v Ekspert
29. oktober 2005 - 22:39 #1
Dim alt As Boolean = True
For Each row As DataRow In xmldataset.tables("bla").Rows
    If alt Then
        ' noget
    Else
        ' noget andet
    End If
    alt = Not alt
Next

måske
Avatar billede jaffafo Nybegynder
29. oktober 2005 - 22:49 #2
Takker..  det var jo det skulle bruge :)

Men jeg har stadig problemer da jeg ikke lige havde gennemtænkt det helt :/

Min datagrid ser sådan her ud:

<itemtemplate>
<tr class="<%=itemalt%>">
<td><%# container.dataitem("position") %></td>
<td><a href="http://www.vman.dk/index.php?page_id=27&spiller_id=<%# container.dataitem("spiller_id") %>" target="_blank"><%# container.dataitem("navn") %> <%# Udmaerk(container.dataitem("udmaerkelse")) %></a></td>
<td><%# Int32.Parse(container.dataitem("vaerdi")).ToString("0,000") %></td>
<td align="center"><%# container.dataitem("alder") %></td>
<td align="right"><%# lonformat(container.dataitem("lon")) %></td>
<td align="right"><%# container.dataitem("ben") %></td>
<td align="center"><%# Skill("teknik", container.dataitem("afslutning"), container.dataitem("dribling"), container.dataitem("aflevering"), container.dataitem("takling"), container.dataitem("markering"), container.dataitem("straffespark")) %></td>
<td align="center"><%# Skill("mental", container.dataitem("mod"), container.dataitem("kreativitet"), container.dataitem("beslutsomhed"), container.dataitem("indflydelse"), container.dataitem("kampaand"), container.dataitem("udenbold")) %></td>
<td align="center"><%# Skill("fysik", container.dataitem("acceleration"), container.dataitem("balance"), container.dataitem("kondition"), container.dataitem("hop"), container.dataitem("styrke"), container.dataitem("udholdenhed")) %></td>
<td align="center"><%# Samletskill(container.dataitem("afslutning"), container.dataitem("dribling"), container.dataitem("aflevering"), container.dataitem("takling"), container.dataitem("markering"), container.dataitem("straffespark"), container.dataitem("mod"), container.dataitem("kreativitet"), container.dataitem("beslutsomhed"), container.dataitem("indflydelse"), container.dataitem("kampaand"), container.dataitem("udenbold"), container.dataitem("acceleration"), container.dataitem("balance"), container.dataitem("kondition"), container.dataitem("hop"), container.dataitem("styrke"), container.dataitem("udholdenhed")) %></td>
<td><%# formater(Container.DataItem("kontraktudloeb")) %></td>
</tr>
</itemtemplate>


Jeg vil have den at skifte baggrundsfarven ud på hveranden row, men hvis jeg gør det som jeg havde tænkt mig vil den jo først skrive HTML'en ud til sidst dvs min string "itemalt" bliver sat til den den blev sat til sidst og så får alle rækker samme Class :/ 

Har du en idé til hvordan jeg ellers kan lave det?
Avatar billede jaffafo Nybegynder
29. oktober 2005 - 22:50 #3
<itemtemplate>
<tr class="<%=itemalt%>">
<td><%# container.dataitem("position") %></td>
<td><%# container.dataitem("spiller_id") %></td>
</tr>
</itemtemplate>
Avatar billede jaffafo Nybegynder
29. oktober 2005 - 22:50 #4
Lettere at overskue ;)
Avatar billede arne_v Ekspert
29. oktober 2005 - 22:55 #5
nu er GUI ikke min stærke side - hverken på den ene eller anden måde

vildt gæt:

<%=itemalt[i++ % 2]%>

hvor itemlat er et array af dimension 2 og i bare er en integer
Avatar billede jaffafo Nybegynder
29. oktober 2005 - 23:02 #6
Den giver:

Compiler Error Message: BC30203: Identifier expected.
Avatar billede arne_v Ekspert
29. oktober 2005 - 23:05 #7
jeg prøver lige at teste med et eksempel !
Avatar billede arne_v Ekspert
30. oktober 2005 - 00:10 #8
det kan vist ikke lade sig gøre på den måde

men det er indbygget i ASP.NET !

se dette eksempel:

<%@ import namespace="System.Data" %>
<html>
<head>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
    DataTable dt = new DataTable("T1");
    dt.Columns.Add(new DataColumn("F1", typeof(String)));
    dt.Columns.Add(new DataColumn("F2", typeof(String)));
    dt.Rows.Add(new object[] { "1", "A" });
    dt.Rows.Add(new object[] { "2", "BB" });
    dt.Rows.Add(new object[] { "3", "CCC" });
    dt.Rows.Add(new object[] { "4", "DDDD" });
    dt.Rows.Add(new object[] { "5", "EEEEE" });
    MyDataList.DataSource = dt.DefaultView;
    MyDataList.DataBind();
}
</script>
</head>
<body>
<form runat=server>
    <asp:DataList id="MyDataList" Border="True" BorderColor="Black" runat="server">
        <ItemStyle BackColor="White"/>
        <AlternatingItemStyle BackColor="LightGray"/>
        <ItemTemplate>
            <%# ((DataRowView)Container.DataItem)["F1"] %>
            <%# ((DataRowView)Container.DataItem)["F2"] %>
        </ItemTemplate>
    </asp:DataList>
</form>
</body>
</html>
Avatar billede arne_v Ekspert
30. oktober 2005 - 00:11 #9
Du vil ikke sætte BackColor men CssClass på de 2 styles, men det er jo en
detalje
Avatar billede jaffafo Nybegynder
30. oktober 2005 - 01:07 #10
Ja det fungerer egentlig, men nu er der lidt problemer..

Se her:  http://img453.imageshack.us/img453/8269/gcs00837iw.jpg

der har jeg tilføjet disse ting:                    
<ItemStyle CssClass="item" />
<AlternatingItemStyle CssClass="itemalt" />

Min <itemtemplate> ser således ud:

<itemtemplate>
<tr class="text">
  <td><%# container.dataitem("position") %></td>
  <td><%# container.dataitem("gur") %></td>
  <td><%# Int32.Parse(container.dataitem("vaerdi")).ToString("0,000") %></td>
  <td align="center"><%# container.dataitem("alder") %></td>
  <td align="right"><%# lonformat(container.dataitem("lon")) %></td>
  <td align="right"><%# container.dataitem("ben") %></td>
  <td><%# container.dataitem("1") %></td>
  <td><%# container.dataitem("2") %></td>
  <td><%# container.dataitem("3") %></td>
  <td><%# container.dataitem("4") %></td>
  <td><%# container.dataitem("5") %></td>
</tr>
</itemtemplate>

Så jeg forstår ikke helt hvad der sker :/
Avatar billede arne_v Ekspert
30. oktober 2005 - 08:50 #11
prøv og fjern din <tr></tr> fordi ASP.NET sætter sådan en ind for
din itemtemplate

(du kan lære meget af at gå i view source i browseren !)
Avatar billede jaffafo Nybegynder
30. oktober 2005 - 11:11 #12
Jamen..  det er jo helt rigtigt.. :)

Jeg takker for din hjælp :)  Smid et svar
Avatar billede arne_v Ekspert
30. oktober 2005 - 11:14 #13
svar
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