2011-07-05 63 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(或只是EVAL)幕後,它 只查找屬性。他們與公衆成員(領域)不完全相同。屬性比字段更接近方法。

那麼,爲什麼你不使用這樣的屬性呢?

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

thks您的回覆很高興在eval深度查看 – Vishal

+0

@vishal爲什麼你接受這個答案即使在你的問題中你做這個「如何在asp.net中的gridview中綁定數據而不使用屬性」 – rahularyansharma

-1

有問題一些地方在房地產decalration部分,請更改屬性爲私有memeber它會爲你的作品。

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

相關問題