0

何らかの理由で、コード ビハインドでプロパティに値を割り当てようとすると、ASP.NET マークアップのすべてのオブジェクトが null になります。

私のプロジェクトは順調に進んでいましたが、データ ソースを GridView に割り当てようとすると、null 参照エラーが発生します。

なぜこれを行っているのかわかりません。特別なことはしていません。ページ上のasp.net要素のプロパティに値を割り当てようとしています。インテリセンスは要素がそこにあることを認識しており、プロジェクトをビルドしてもエラーは発生しません。ウェブサイトを実行しているときに、null 参照が発生します。

私はこの問題を数週間修正しようとしています。助けてください。

ありがとう。

コードは次のとおりです。

protected void Page_PreRender(object sender, EventArgs e)
{
    LoadData();
}

private void LoadData()
{
    Entities context = new Entities();
    var types = (from t in context.CustomerTypes
                 select t).OrderBy(t => t.TypeName);

    gvCustomerTypes.DataSource = types;
    gvCustomerTypes.DataBind();

}

マークアップでは、グリッドビューは次のようになります。

<asp:GridView ID="gvCustomerTypes" runat="server" ShowHeader="true" GridLines="Both"
    AutoGenerateColumns="false" AlternatingRowStyle-BackColor="AliceBlue" Width="100%">
    <Columns>
        <asp:TemplateField HeaderText="Customer Type Name" HeaderStyle-HorizontalAlign="Left"
            ItemStyle-HorizontalAlign="Left">
            <ItemTemplate>
                <asp:Label ID="lblType" runat="server" Text='<%# Eval("TypeName") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Edit" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" NavigateUrl='<%#Eval("CustomerTypeID", "CreateEditCustomerType.aspx?ID={0}") %>'
                    Text="Edit" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Delete" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" CommandName='<%#Eval("CustomerTypeID") %>' OnClientClick="javascript:return confirm('Are you sure you want to delete this Customer Type?');"
                    OnCommand="DeleteCustomerType" Text="Delete" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
4

1 に答える 1

1

この問題を解決しました!! わーい!

LoginView コントロールを含むマスター ページがありました。

LoginView コントロールのログイン ビューでは、そのマスター ページを使用するページのコンテンツ プレース ホルダーを配置します。そのため、LoginView コントロールのログイン ビュー テンプレートが原因で、すべてのコントロールが null を返しました。

これがなぜこれを行うのか完全にはわかりませんが、少なくともヌル参照の問題を発見しました。

これが他の誰かの頭痛の種を救うことを願っています。

于 2012-12-15T19:57:06.803 に答える