分配数据源时,ASP.NET元素为空

时间:2012-12-15 19:30:54

标签: c# asp.net .net

出于某种原因,当我尝试在后面的代码中为其属性赋值时,我的ASP.NET标记中的所有对象现在都为null。

我的项目进展顺利,然后当我尝试将数据源分配给GridView时,我得到一个空引用错误。

我不知道为什么会这样做。我没有做什么特别的事。我只是试图将属性的值赋给页面上的asp.net元素。 intellisense知道元素存在,我在构建项目时没有错误。就在我运行网站时,我得到了空引用。

我一直试图解决这个问题几个星期了。请帮助。

感谢。

以下是代码:

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();

}

在标记中,gridview看起来像这样:

<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>

1 个答案:

答案 0 :(得分:1)

我解决了这个问题!! YAY!

我有一个带有LoginView控件的母版页。

在LoginView控件的loggedin视图中,我为使用该母版页的页面放置了内容占位符。因此,由于LoginView控件的登录视图模板,所有控件都返回null。

我不完全确定为什么这样做但至少我发现了我的空引用问题。

希望这可以让别人头疼。