You should initialize Label field before setting Renderer:
<%@ Page Language="C#" %>
<%@ Import Namespace="Ext.Net.Examples" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Chart1.Axes.Add(new NumericAxis
{
Fields = new[] { "Data1" },
Position = Position.Bottom,
Grid = true,
Minimum = 0,
Label = new AxisLabel()
});
Chart1.Axes.Add(new CategoryAxis
{
Fields = new[] { "Name" },
Position = Position.Left,
Title = "Month of the Year"
});
Chart1.Axes[0].Label.Renderer.Handler = @"
if (value.toString().indexOf('.') === -1){
return value;
} else {
return '';
}";
}
public List<ChartData> Data
{
get
{
return new List<ChartData>
{
new ChartData() { Name = "1", Data1 = 1 },
new ChartData() { Name = "2", Data1 = 2.4 },
new ChartData() { Name = "3", Data1 = 3.6 },
new ChartData() { Name = "4", Data1 = 5 },
};
}
}
</script>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Ext.NET Examples</title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Panel
runat="server"
Title="Bar Chart"
Width="800"
Height="600"
Layout="FitLayout">
<Items>
<ext:Chart
ID="Chart1"
runat="server"
Shadow="true"
Animate="true">
<Store>
<ext:Store
runat="server"
Data="<%# Data %>"
AutoDataBind="true">
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="Name" />
<ext:ModelField Name="Data1" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<Axes>
</Axes>
<Series>
<ext:BarSeries
Axis="Bottom"
Highlight="true"
XField="Name"
YField="Data1">
<Tips TrackMouse="true" Width="140" Height="28">
<Renderer Handler="this.setTitle(storeItem.get('Name') + ': ' + storeItem.get('Data1') + ' views');" />
</Tips>
<Label
Display="InsideEnd"
Field="Data1"
Orientation="Horizontal"
Color="#333"
TextAnchor="middle"
/>
</ext:BarSeries>
</Series>
</ext:Chart>
</Items>
</ext:Panel>
</form>
</body>
</html>