ASP.NET - Lägga till enhetsbenämningar i datagrid

korvgubbe

Ny medlem
Gick med
13 May 2003
Ort
Sthlm
Hoj
Versys -08
Har fått hjärnsläpp och komme rinte alls på hur jag ska göra.

På en Asp.Net-sida har jag en datagrid som jag fyller med värden från en databas. Griden fylls direkt med databind.
Låt oss för enkelhetens skull säga att i kolumn A står artikelnamn och i kolumn B står priset.

Nu vill jag lägga till "kr" efter priset.
Alltså det ser ut:
| namn | pris |
| pryl 1 | 149 |
| pryl 2 | 299 |
Jag vill alltså att det ska stå
| namn | pris |
| pryl 1 | 149kr |
| pryl 2 | 299kr |

Hur får jag dit "kr" efter värdet i priskolumnen??? :va
 
Alltså, istf databind mot resultat får du snurra igenom datasetet (om det inte är feltypat vill säga) och konkatenera kol. 2 med strängen. Sen binder du det aktuella datasetet mot griden. T.ex:

DataSet ds = HamtaRubbet();
foreach(DataRow dr in ds.Rows)
{
dr[1] += " kr";
}

dgd.DataSource = ds;
dgd.DataBind();
 
Valen skrev:
2097420 Alltså, istf databind mot resultat får du snurra igenom datasetet (om det inte är feltypat vill säga) och konkatenera kol. 2 med strängen. Sen binder du det aktuella datasetet mot griden. T.ex:

DataSet ds = HamtaRubbet();
foreach(DataRow dr in ds.Rows)
{
dr[1] += " kr";
}

dgd.DataSource = ds;
dgd.DataBind();

Det är inte bundet mot ett dataset utan mot en "ExpressionHandler". Finns alltså inget att snurra igenom i förväg.

Borde det inte gå att formatera cellen med ett "Date Formatting Expression"?
...är iofs inte så haj på det heller men det borde väl vara enklare?


Edit1:
Lyckades hitta det! Simpelt var ordet.
Det enda jag behöver göra är att sätta en Date Formatting String på den aktuella cellen. Detta går att göra i grid-editorn på den aktuella kolumnen.

Code:
{0} kr
:tummenupp
 
Last edited:
korvgubbe skrev:
2097461 Det är inte bundet mot ett dataset utan mot en "ExpressionHandler". Finns alltså inget att snurra igenom i förväg.

Borde det inte gå att formatera cellen med ett "Date Formatting Expression"?
...är iofs inte så haj på det heller men det borde väl vara enklare?


Edit1:
Lyckades hitta det! Simpelt var ordet.
Det enda jag behöver göra är att sätta en Date Formatting String på den aktuella cellen. Detta går att göra i grid-editorn på den aktuella kolumnen.

Code:
{0} kr
:tummenupp

Japp, stämmer. Tycker personligen .Net's dgd (ännu sämre är FW 2.0 nya grid) är riktigt usel, bättre är t.ex. Farpoint's spread. Den kan man t.o.m. jobba med.
 
Valen skrev:
2097505 Japp, stämmer. Tycker personligen .Net's dgd (ännu sämre är FW 2.0 nya grid) är riktigt usel, bättre är t.ex. Farpoint's spread. Den kan man t.o.m. jobba med.

Har jobbat för lite med griddarna i .net för att egentligen skaffat mig en ordentlig uppfattning. I det här fallet sitter jag och fixar lite småpill med i en annan utvecklares lösning.

Ytterligare en liten fråga när vi ändå håller på:
- Hur/var sätter man storleken(bredden) på de textboxar som i en datagrid syns när man klickar på "edit". Jag kan justera hela kolumnens bredd men hittar ingenstans där jag sätter bredden på textboxen. Den syns ju inte i designläge.
 
korvgubbe skrev:
2097527 Har jobbat för lite med griddarna i .net för att egentligen skaffat mig en ordentlig uppfattning. I det här fallet sitter jag och fixar lite småpill med i en annan utvecklares lösning.

Ytterligare en liten fråga när vi ändå håller på:
- Hur/var sätter man storleken(bredden) på de textboxar som i en datagrid syns när man klickar på "edit". Jag kan justera hela kolumnens bredd men hittar ingenstans där jag sätter bredden på textboxen. Den syns ju inte i designläge.

I det här fallet är du nog tvingad att skapa en template kolumn för aktuell cell. Där kan du lägga in vilken kontroll du vill & således styra designen på den. Ngt i stil med:

<asp:TemplateColumn HeaderText="Något namn">
<ItemTemplate>
<asp:Label id="Label2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Namn") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<ns:txtBox id="id" runat="server" kopplingen='<%# DataItem.andaranamnet %>'>
</ns:txtBox>
</EditItemTemplate>
</asp:TemplateColumn>


ItemTemplate är alltså readonly-läget & EditItemTemplate edit-läget (förstås) där aktuell kontroll exponeras när man trycker på Edit-knappen. Notera att allt ovan kan skapas i Propertybuildern. Bättre exempel finns på msdn.microsoft.com
 
Nyheter
Yamaha R7-vinnarens rapport: ”Ett riktigt monster på kurviga landsvägar!”

På MC-mässan i vintras anor...

Nisse Hedlund bortgången

Den legendariske motorkonst...

En dag på dragstrippen

Efter att ha varit aktiv so...

Steve McQueens Scott Squirrel till salu

Detta Scott Flying Squirrel...

Dags för Strängnäs Bike Show!

Sista lördagen i augusti är...

Bikeweekend på Kjula denna helg

Den 22-23 augusti är det da...

Motorcycle Inferno #8

Den 5 september blir Laxhol...

Tiotusentals körde Mälaren Runt

Lördagen den 15 augusti gen...

Mälaren Runt fyller 40 år

Nu på lördagen den 15 augus...

Steve Holcombe klar för GGN!

Pressmeddelande 2026-08-10 ...

Back
Top