linqdatasourceに代入するためにOn_Selectingイベントを使用しようとしていますが、linqdatasourceがチャートにデータを供給するために使用されています。イベントが発生すると、e.Resultはnull参照例外をスローします。私はこれを理解することができませんでした。助けてください。e.Result throwing nullreferenceexception
まず、LinqDataSourceコントロールとグラフのコード:
<asp:Chart ID="MonthlyChart"
runat="server"
DataSourceID="LinqGetChartData">
<series>
<asp:Series Label="#VALX, #VALY"
ChartType="Pie"
Name="Series1"
XValueMember="CostSum"
YValueMembers="SalesMonth"></asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1">
<AxisY Title="Sales Month">
<LabelStyle Format="MMMM" />
</AxisY>
<AxisX Title="Total"></AxisX>
<Area3DStyle Enable3D="True"
WallWidth="10"></Area3DStyle>
</asp:ChartArea>
</chartareas>
</asp:Chart>
<asp:LinqDataSource ID="LinqGetChartData"
runat="server"
ContextTypeName="MegaChallengePapaBobsPizza.Persistence.CustomerEntities"
EntityTypeName=""
OnSelecting="LinqGetChartData_Selecting"
TableName="Customers"></asp:LinqDataSource>
次に、On_Selectingイベントのコード:最後
protected void LinqGetChartData_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
var customerList = Domain.CustomerManager.GetCustomers();
var query = customerList.OrderBy(c => c.OrderDate)
.GroupBy(c => c.OrderDate.ToString("MMMM"),
(c => c.Cost),
(groupKey, totCost) => new SalesResult()
{
SalesMonth = groupKey,
CostSum = totCost.Sum()
});
e.Result = query;
}
、イベントを発生させたコード:
LinqGetChartData_Selecting(sender, e as LinqDataSourceSelectEventArgs);
ご協力いただければ幸いです。ありがとう。
eがLinqDataSourceSelectEventArgs型のオブジェクトではないように見えます。 LinqGetChartData_Selectingはどこから呼び出されましたか? – H77
Page_Loadから呼び出されました –
@DwightMendozaなぜPage_Loadから呼び出すのですか?イベントハンドラはaspに割り当てられているので、必要はありません。 – H77