C# Telerik RadChart“;输入字符串的格式不正确";
我得到以下例外情况: DataBind()行上的“输入字符串格式不正确” 我相信正在发生的事情是,投票是用数字/整数创建的,Telerik很聪明,把它们当作整数而不是字符串 有没有一种方法可以告诉telerik RadChart将所有内容都当作字符串处理,或者根据每个条目对内容进行格式化 这两个人遇到了类似的问题, cs ascxC# Telerik RadChart“;输入字符串的格式不正确";,c#,asp.net,.net,telerik,C#,Asp.net,.net,Telerik,我得到以下例外情况: DataBind()行上的“输入字符串格式不正确” 我相信正在发生的事情是,投票是用数字/整数创建的,Telerik很聪明,把它们当作整数而不是字符串 有没有一种方法可以告诉telerik RadChart将所有内容都当作字符串处理,或者根据每个条目对内容进行格式化 这两个人遇到了类似的问题, cs ascx 谢谢, Telerik support提出了以下解决方案 …将处理程序附加到数据绑定和BeforeLayout事件,并在第一个操作中将sentinel符号前置
谢谢,
Telerik support提出了以下解决方案
…将处理程序附加到数据绑定和BeforeLayout事件,并在第一个操作中将sentinel符号前置到所有值,在第二个操作中删除sentinel符号
...
this.trcResults.DataBinding += this.trcResults_DataBinding;
this.trcResults.BeforeLayout += this.trcResults_BeforeLayout;
this.trcResults.DataSource = pcl;
this.trcResults.DataBind();
}
void trcResults_DataBinding(object sender, EventArgs e)
{
var senderChart = (RadChart)sender;
var pcl = senderChart.DataSource as IEnumerable<PollContainer>;
foreach (var pollContainer in pcl)
{
// prepend a sentinel symbol
pollContainer.AnswerText = "x" + pollContainer.AnswerText;
}
}
void trcResults_BeforeLayout(object sender, EventArgs e)
{
foreach (var axisItem in this.trcResults.PlotArea.XAxis.Items)
{
// remove the sentinel symbol
axisItem.TextBlock.Text = axisItem.TextBlock.Text.Remove(0, 1);
}
}
。。。
this.trcResults.DataBinding+=this.trcResults\u DataBinding;
this.trcResults.BeforeLayout+=this.trcResults\u BeforeLayout;
this.trcResults.DataSource=pcl;
this.trcResults.DataBind();
}
void trcResults_数据绑定(对象发送方,事件参数e)
{
var senderChart=(RadChart)发送方;
var pcl=senderChart.DataSource作为IEnumerable;
foreach(pcl中的容器)
{
//在哨兵符号前面加上前缀
pollContainer.AnswerText=“x”+pollContainer.AnswerText;
}
}
布局前的void trcResults_(对象发送方、事件参数)
{
foreach(此.trcResults.PlotArea.XAxis.Items中的var axisItem)
{
//移除哨兵符号
axisItem.TextBlock.Text=axisItem.TextBlock.Text.Remove(0,1);
}
}
<telerik:RadChart ID="trcResults" runat="server"
ChartTitle-Visible="false"
Legend-Visible="false"
SeriesOrientation="Horizontal"
Height="160px"
Width="240px" >
<Series>
<telerik:ChartSeries DataYColumn="Votes"
DefaultLabelValue="#%">
<Appearance FillStyle-FillType="Solid"
FillStyle-MainColor="#660066"
Border-Visible="false"
TextAppearance-TextProperties-Font="Arial" >
<FillStyle FillType="Solid" MainColor="102, 0, 102">
</FillStyle>
<TextAppearance TextProperties-Font="Arial, 9pt">
</TextAppearance>
<Border Visible="False" />
</Appearance>
</telerik:ChartSeries>
</Series>
<Appearance Border-Visible="False" FillStyle-FillType="Solid"
FillStyle-MainColor="Transparent" Dimensions-AutoSize="false"
Dimensions-Width="220px" Dimensions-Height="160px" >
<FillStyle MainColor="Transparent">
</FillStyle>
<Border Visible="False" />
</Appearance>
<PlotArea>
<YAxis2>
<AxisLabel>
<Appearance RotationAngle="0">
</Appearance>
</AxisLabel>
</YAxis2>
<Appearance FillStyle-FillType="Solid" FillStyle-MainColor="Transparent"
Border-Visible="False" >
<FillStyle FillType="Solid" MainColor="Transparent">
</FillStyle>
<Border Visible="False" />
</Appearance>
<XAxis DataLabelsColumn="AnswerText" IsZeroBased="False">
<Appearance MajorTick-Color="#333333"
TextAppearance-TextProperties-Color="#333333"
TextAppearance-TextProperties-Font="Arial" >
<TextAppearance TextProperties-Color="51, 51, 51"
TextProperties-Font="Arial, 8pt">
</TextAppearance>
</Appearance>
<AxisLabel>
<Appearance RotationAngle="270">
</Appearance>
</AxisLabel>
<Items>
<telerik:ChartAxisItem>
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="1">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="2">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="3">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="4">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="5">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="6">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
<telerik:ChartAxisItem Value="7">
<TextBlock>
<Appearance TextProperties-Font="Arial, 8.25pt">
</Appearance>
</TextBlock>
</telerik:ChartAxisItem>
</Items>
</XAxis>
<YAxis>
<Appearance Visible="false" />
<AxisLabel>
<Appearance RotationAngle="0">
</Appearance>
</AxisLabel>
</YAxis>
</PlotArea>
<ChartTitle Visible="False">
<Appearance Visible="False">
</Appearance>
</ChartTitle>
<Legend Visible="False">
<Appearance Visible="False">
</Appearance>
</Legend>
</telerik:RadChart>
...
this.trcResults.DataBinding += this.trcResults_DataBinding;
this.trcResults.BeforeLayout += this.trcResults_BeforeLayout;
this.trcResults.DataSource = pcl;
this.trcResults.DataBind();
}
void trcResults_DataBinding(object sender, EventArgs e)
{
var senderChart = (RadChart)sender;
var pcl = senderChart.DataSource as IEnumerable<PollContainer>;
foreach (var pollContainer in pcl)
{
// prepend a sentinel symbol
pollContainer.AnswerText = "x" + pollContainer.AnswerText;
}
}
void trcResults_BeforeLayout(object sender, EventArgs e)
{
foreach (var axisItem in this.trcResults.PlotArea.XAxis.Items)
{
// remove the sentinel symbol
axisItem.TextBlock.Text = axisItem.TextBlock.Text.Remove(0, 1);
}
}