2012-12-15 2 views
0

몇 가지 이유 때문에 코드 뒤에 속성의 값을 할당하려고하면 ASP.NET 마크 업에있는 모든 객체가 null입니다.데이터 소스를 할당 할 때 ASP.NET 요소가 null입니다.

내 프로젝트가 잘 진행되었다가 GridView에 데이터 소스를 할당하려고 할 때 null 참조 오류가 발생합니다.

왜 이렇게하는지 잘 모르겠습니다. 나는 특별한 일을하지 않을 것이다. 난 그냥 asp.net 요소에있는 속성 값을 페이지에 할당하려고합니다. Intellisense는 요소가 있음을 알고 프로젝트를 빌드 할 때 오류가 발생하지 않습니다. 그것은 내가 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(); 

} 

와의 마크 업에 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> 
+0

일부 코드는 유용 할 수 있습니다. 어떤 방법으로 프로 사이트 (페이지로드, ...)에 액세스하려고합니까 –

+0

여기에 코드가 있습니다 : protected void Page_PreRender (object sender, EventArgs e) { LoadData(); } 개인 무효 LoadData() { 엔티티 context = new 엔티티(); var types = (컨텍스트에서 t.CustomerTypes 선택) .OrderBy (t => t.TypeName); gvCustomerTypes.DataSource = 유형; gvCustomerTypes.DataBind(); } – deccks

+0

정확히 어디에서 예외가 발생하는지, 정확한 예외 메시지와 스택 추적이 도움이 될 것입니다. 귀하의 코드를 mcoked 및 작동하는 것 같다 (나는 데이터 작업의 더미 구현을 만든 - 어쩌면 열 바인딩 중 하나가 잘못되었습니다, 예를 들어 속성 ​​이름이 다릅니다 - "CustomerTypeID 또는 TypeName 반환 된 엔터티 형식의 속성이 없습니다?) –

답변

1

내가이 문제를 해결! 예!

LoginView 컨트롤이있는 마스터 페이지가 있습니다.

LoginView 컨트롤의 loggedin보기에서 해당 마스터 페이지를 사용하는 페이지에 대한 콘텐츠 위치 보유자를 배치합니다. 그래서 모든 컨트롤은 LoginView 컨트롤에 대한 로그인 된 뷰 템플릿 때문에 null을 반환했습니다.

왜 이것이이 작업을 수행하는지 완전히 모르지만 적어도 null 참조 문제를 발견했습니다.

희망이 있으면 다른 사람에게 두통을 줄 수 있기를 바랍니다.

관련 문제