2011-07-05 4 views
2

이 코드가 있습니다. 속성을 사용하지 않고 그리드 뷰에 데이터를 바인딩하고 싶습니다.속성을 사용하지 않고 asp.net에서 gridview의 데이터를 바인딩하는 방법

 public class UserTerritory 
     { 
      public string TerrId; 
      public string TerrName; 
      public string AccAccessLevel; 

      public UserTerritory(string _TerrId, string _TerrName, string _AccAccessLevel) 
      { 
       this.TerrId = _TerrId; 
       this.TerrName = _TerrName; 
       this.AccAccessLevel= _AccAccessLevel; 
      } 
     } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     List<UserTerritory> ut = new List<UserTerritory>(); 
     ut.Add(new UserTerritory("1", "x", "a")); 
     ut.Add(new UserTerritory("2", "y", "b")); 
     ut.Add(new UserTerritory("3", "z", "c")); 



     grdUserTerr.DataSource = ut; 
     grdUserTerr.DataBind(); 
    } 

나는 위의 코드를 실행하면 나는 Httpexception 다음 얻을 "열을 생성 할 수있는 어떤 속성이나 속성을 가지고 있지 않은 ID로 'grdUserTerr'의 GridView의 데이터 소스. 데이터 소스 콘텐츠를 가지고 있는지 확인하십시오."

누가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 귀하의 회신

답변

1

문제는 데이터 바인딩이 장면 뒤에 DataBinder.Eval (또는 평가)를 사용하는이며 속성 만 보인다. 그들은 공공 회원 (들판)과 정확히 같지 않습니다. 속성은 필드보다 메서드에 더 가깝습니다.

그럼 왜 이런 속성을 사용하지 않으시겠습니까?

public string AccAccessLevel { get; set; }  
public string TerrName { get; set; }  
public string TerrId { get; set; } 
+0

답장을 보내 주신다면 감사합니다. – Vishal

+0

@vishal 이 속성을 사용하지 않고 "asp.net에서 gridview의 데이터를 바인딩하는 방법" – rahularyansharma

-1

문제는 속성 decalration 섹션에서 어떤 곳이에 대한

덕분에 개인 일원이 같은 속성을 변경하시기 바랍니다 그 것이다 당신을 위해 작동합니다.

public class UserTerritory 
     { 
      private string TerrId; 
      private string TerrName; 
      private string AccAccessLevel; 

      public UserTerritory(string _TerrId, string _TerrName, string _AccAccessLevel) 
      { 
       this.TerrId = _TerrId; 
       this.TerrName = _TerrName; 
       this.AccAccessLevel= _AccAccessLevel; 
      } 
     } 
+0

답장을 보내 주셔서 감사합니다. 속성 선언을 변경하지만 여전히 동일한 예외가 발생합니다. – Vishal

+0

확인 기다려주세요. – rahularyansharma

+0

한 가지 아이디어는 개인 필드를 속성으로 변경할 수 있다는 것입니다.이 접근법에서도 찾고 있습니다. 찾은 솔루션을 찾으면 찾을 수 있습니다. – rahularyansharma

관련 문제