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ø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>
Annonceindlæg fra Barco
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>
24. januar 2006 - 14:32
#2
i codebehind laver du en funktion public int Forskel(int a, int b) { return b-a; }
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?
24. januar 2006 - 14:46
#4
prøv lige at vis den kode du bruger. Forstår ikke rigtig hvad du mener
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; }
24. januar 2006 - 14:52
#6
jeg har dog sat en ekstra slut ) da jeg ellers ikke kunne compilere korrekt
24. januar 2006 - 14:54
#7
prøv med og omdøb dit label <%# diff((int)Eval("beforeprice"),(int)Eval("price"))%>
24. januar 2006 - 14:54
#8
så det ikke hedder det samme som funktionen
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
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>
24. januar 2006 - 14:59
#11
prøv at skriv hele fejlmeddelelsen hvis den kommer igen
24. januar 2006 - 15:00
#12
Specified cast is not valid.
24. januar 2006 - 15:05
#13
hmm hvad type er beforeprice og price ?
24. januar 2006 - 15:07
#14
er det komma tal ?
24. januar 2006 - 15:08
#15
ja dem har jeg sku lavet som float i db. Hvad skal jeg ændre int til
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>
24. januar 2006 - 15:11
#17
tjekker lige ind lidt senere skal hjem nu.
24. januar 2006 - 15:12
#18
yes. tak endnu en gang. Kan du evt. kort skrive hvad Eval gør?
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.