Avatar billede chw Nybegynder
24. januar 2006 - 14:26 Der er 18 kommentarer og
1 løsning

gridview rowcreated event

Hej jeg har 2 felter i min gridview som hver indeholder et tal. Forskellen på disse 2 tal vil jeg gerne vise i en 3. kollone. Jeg førsøger at gøre således:

protected void gwMain_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType.ToString() == "DataRow")
        {
            Response.Write(e.Row.Cells[2].Text);
        }
    }

men det kan ikke se teksten, jeg for en tom streng tilbage.

Jeg bruger datareader til at hente mine data fra db

SqlDataReader drMakeStartGrid = cmdMakeStartGrid.ExecuteReader();
                     
            gwMain.DataSource = drMakeStartGrid;
            gwMain.DataBind();

og min html ser således ud:

<asp:TemplateField HeaderText="F&#248;rpris">
                <ItemTemplate>
                    <asp:Label ID="fpris" runat="server" Text='<%#Eval("beforeprice").ToString() + " kr."%>'></asp:Label>
                  </ItemTemplate>             
                  <ControlStyle Width="100px"  />             
                    <ItemStyle HorizontalAlign="Right" />
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:TemplateField>
               
                <asp:TemplateField HeaderText="Nu">
                <ItemTemplate>
                    <asp:Label ID="nu" runat="server" Text='<%#Eval("price").ToString() + " kr."%>'></asp:Label>
                  </ItemTemplate>
                  <ControlStyle Width="100px" />
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Diff.">
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:TemplateField>
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:31 #1
tilføj endnu en kollone
<asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="Label2" runat="server" Text='<%# Forskel((int)Eval("beforeprice"), (int)(Eval("price"))%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:32 #2
i codebehind laver du en funktion

public int Forskel(int a, int b)
{
return b-a;
}
Avatar billede chw Nybegynder
24. januar 2006 - 14:44 #3
jeg får en cast fejl. Kan det være fordi at den kalder metoden med headerteksten 1. gang?
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:46 #4
prøv lige at vis den kode du bruger.
Forstår ikke rigtig hvad du mener
Avatar billede chw Nybegynder
24. januar 2006 - 14:50 #5
jeg har blot indsat det du skrev.

<asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="diff" runat="server" Text='<%# diff((int)Eval("beforeprice"), (int)(Eval("price")))%>'></asp:Label>
                            </ItemTemplate>
                            <ControlStyle Width="100px" />
                    <HeaderStyle HorizontalAlign="Left" />
                        </asp:TemplateField>

og

public int diff(int a, int b)
    {
        return b - a;
    }
Avatar billede chw Nybegynder
24. januar 2006 - 14:52 #6
jeg har dog sat en ekstra slut ) da jeg ellers ikke kunne compilere korrekt
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:54 #7
prøv med og omdøb dit label
<%# diff((int)Eval("beforeprice"),(int)Eval("price"))%>
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:54 #8
så det ikke hedder det samme som funktionen
Avatar billede chw Nybegynder
24. januar 2006 - 14:56 #9
mente du
<asp:Label ID="forskel" runat="server" Text='<%# diff((int)Eval("beforeprice"), (int)(Eval("price")))%>'></asp:Label>

Det er det samme problem
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:58 #10
prøv med
<asp:Label ID="forskel" runat="server" Text='<%# diff((int)Eval("beforeprice"),(int)Eval("price"))%>'></asp:Label>
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 14:59 #11
prøv at skriv hele fejlmeddelelsen hvis den kommer igen
Avatar billede chw Nybegynder
24. januar 2006 - 15:00 #12
Specified cast is not valid.
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 15:05 #13
hmm
hvad type er beforeprice og price ?
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 15:07 #14
er det komma tal ?
Avatar billede chw Nybegynder
24. januar 2006 - 15:08 #15
ja dem har jeg sku lavet som float i db. Hvad skal jeg ændre int til
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 15:09 #16
prøv med en double
altså
public double diff(double a, double b)
    {
        return b - a;
    }

<asp:Label ID="forskel" runat="server" Text='<%# diff((double)Eval("beforeprice"),(double)Eval("price"))%>'></asp:Label>
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 15:11 #17
tjekker lige ind lidt senere skal hjem nu.
Avatar billede chw Nybegynder
24. januar 2006 - 15:12 #18
yes. tak endnu en gang. Kan du evt. kort skrive hvad Eval gør?
Avatar billede dr_chaos Nybegynder
24. januar 2006 - 16:37 #19
np
du kan læse noget om eval her:
www.15seconds.com/issue/040630.htm+asp.net+2.0+eval&hl=da" target="_blank">http://66.249.93.104/search?q=cache:h1MBtRSd0CAJ:www.15seconds.com/issue/040630.htm+asp.net+2.0+eval&hl=da
og om databinding i asp.net 2.0
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