Skulle vilja köra en replace på värden som skrivs ut i en kolumn i en datagrid. Är dock osäker på om det går och i så fall - hur ser syntaxen ut? På värdet "rooms" vill jag köra en replace där jag vill byta ut alla förekomster av ",0" till "". <code><asp:templatecolumn SortExpression="rooms" HeaderText="Rum"> Du kan även kolla detta vid DataBound. Ifall värdet i din label (som måste ha ett ID i så fall) är 0 så släcker du labeln helt, visible=False SilvioF - tack för ditt svar! Jo, i DataGrid, Repeater, DataList, med mera så kan du skriva OnItemDataBound="subfördatabound()" Eller så använder du den inbyggda formateringen i DataBinder.Eval Det stämmer, vilket visades i ett exempel ovan och min DataBound funktion är kanske lite onödig i det här fallet. Men den är ett enkelt exempel som visar vad du kan göra. :)Kan man formatera "värden" i templatecolumn - datagrid?
<code>
<asp:templatecolumn SortExpression="rooms" HeaderText="Rum">
<itemtemplate>
<asp:label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.rooms") %>'></asp:label>
</itemtemplate>
</asp:templatecolumn>
</code>
Tacksam för hjälp!Sv: Kan man formatera "värden" i templatecolumn - datagrid?
<itemtemplate>
<asp:label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.rooms").Replace(",0", "") %>'></asp:label>
</itemtemplate>
</asp:templatecolumn></code>Sv: Kan man formatera "värden" i templatecolumn - datagrid?
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: Kan man formatera "värden" i templatecolumn - datagrid?
Jag hade dock testa detta eftersom det verkar vara en ganska självklar lösning men tyvärr så får jag fel.
Om jag däremot skriver:
<code>
<asp:templatecolumn SortExpression="rooms" HeaderText="Rum">
<itemtemplate>
<asp:label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.rooms").ToString().Replace(",0", "") %>'>
</asp:label>
</itemtemplate>
</asp:templatecolumn>
</code>
... så funkar det. Är detta logiskt?
/pD: Kan du utveckla ditt svar? Det verkar intressant!
Tack för hjälpen!Sv: Kan man formatera "värden" i templatecolumn - datagrid?
När data binds till kontrollen så körs denna sub.
I ditt fall så kanske inte behovet finns men i andra lägen är det bra att veta. Din kod skulle se ut nåt sånt här:
<code>
Sub dgrRooms_DataBind(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
If item = ListItemType.Item Or item = ListItemType.AlternatingItem Then
Dim tmpRooms As Label = CType(e.Item.FindControl("rooms"), Label)
If tmpRooms.Text = 0 Then
tmpRooms.Visible = False
End If
End If
End Sub
</code>
Du måste även ge din label ID="rooms".
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: Kan man formatera "värden" i templatecolumn - datagrid?
<code>
<asp:templatecolumn SortExpression="rooms" HeaderText="Rum">
<itemtemplate>
<asp:label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.rooms", "{0:D}" %>'>
</asp:label>
</itemtemplate>
</asp:templatecolumn>
</code>Sv: Kan man formatera "värden" i templatecolumn - datagrid?
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nu