2012-10-19 2 views
2
public class VivaClass{ 
public VivaClass() 
{ 
    StudentObJ = new StudentClass(); 
    StudentObJ.SetGetDGroupID = ""; 
    StudentObJ.SetGetDUserName = ""; 
    StudentObJ.SetGetDProjectName = ""; 
    StudentObJ.SetGetDCity = ""; 
    this.Date = ""; 
    this.Time = ""; 
    this.isMake = false; 
} 
public VivaClass(string date, string time, bool isMake, string Gid, string uName, string Prjct, string city) 
{ 
    StudentObJ = new StudentClass(Gid, uName, Prjct, city); 
    this.Date = date; 
    this.Time = time; 
    this.isMake = isMake; 
} 
public VivaClass(string date, string time, bool isMake, string uName,string city) 
{ 
    StudentObJ = new StudentClass(); 
    StudentObJ.SetGetDUserName = uName; 
    this.Date = date; 
    this.Time = time; 
    this.isMake = isMake; 
    this.SetGetStudentObJ.SetGetDCity = city; 
} 
private StudentClass StudentObJ; 

public StudentClass SetGetStudentObJ 
{ 
    get { return StudentObJ; } 
    set { StudentObJ = value; } 
} 
public int ID; 

public int SetGet_ID 
{ 
    get { return ID; } 
    set { ID = value; } 
} 

private string Date; 

public string SetGetDate 
{ 
    get { return Date; } 
    set { Date = value; } 
} 
private string Time; 

public string SetGetDTime 
{ 
    get { return Time; } 
    set { Time = value; } 
} 
private bool isMake; 

public bool SetGetDIsMake 
{ 
    get { return isMake; } 
    set { isMake = value; } 
} 

}Contrôle GridView avec champs privés. je veux lier le Gridview

public List<VivaClass> ReturnVivaObj() 
{ 
    List<VivaClass> Objlst = new List<VivaClass>(); 
    VivaClass obj = null; 
    try 
    { 
     SqlConnection hookup = new SqlConnection(new ConnectionString().GetConString(("SqlConString"))); 
     string query = "Select ID,GroupID,StudentName,ProjectName,City,Date,Time,isMake FROM SchedualTB"; 
     SqlCommand cmd = new SqlCommand(query, hookup); 
     hookup.Open(); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      obj = new VivaClass(); 
      obj.SetGet_ID = Convert.ToInt32(dr["ID"]); 
      obj.SetGetStudentObJ.SetGetDGroupID = Convert.ToString(dr["GroupID"]); 
      obj.SetGetStudentObJ.SetGetDStudentName = Convert.ToString(dr["StudentName"]); 
      obj.SetGetStudentObJ.SetGetDProjectName = Convert.ToString(dr["ProjectName"]); 
      obj.SetGetStudentObJ.SetGetDCity = Convert.ToString(dr["City"]); 
      obj.SetGetDate = dr["Date"].ToString(); 
      obj.SetGetDTime = dr["Time"].ToString(); 
      obj.SetGetDIsMake = Convert.ToBoolean(dr["isMake"].ToString()); 
      Objlst.Add(obj); 
     } 
    } 
    catch (Exception e) 
    { 
     throw e; 
    } 
    return Objlst; 
} 

Markup

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" onrowediting="GridView1_RowEditing"> 
    <Columns> 
     <asp:TemplateField HeaderText="Group ID"> 
     <ItemTemplate> 
     <asp:Label ID="lblGroupID" runat="server" Text='<%# Eval("GroupID") %>' ></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Student ID"> 
     <ItemTemplate> 
     <asp:Label ID="lblUserName" runat="server" Text='<%# Eval("UserName") %>' ></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Student Name"> 
     <ItemTemplate> 
     <asp:Label ID="lblStudentName" runat="server" Text='<%# Eval("StudentName") %>' ></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Project Name"> 
     <ItemTemplate> 
     <asp:Label ID="lblProjectName" runat="server" Text='<%# Eval("ProjectName") %>' ></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Status" > 
      <ItemTemplate> 
       <asp:ImageButton ID="imgStatus" runat="server" CommandName="Edit" ToolTip="Change User status" ImageUrl="~/Image/logo/statusActive.png"></asp:ImageButton> 
      </ItemTemplate> 
      </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

code de liaison GridView

private void FillGrid() 
{ 
    GridView1.DataSource = new StudentIdentity().ReturnVivaObj(); 
    GridView1.DataBind(); 

} 

Je suis en train de lier les données, mais un jet d'exception VivaClass ne contient pas une propriété avec le nom 'ID'. Je n'ai pas idée de la façon de lier throug h le code. Peut-on une fois me donner un lien ou une solution pour cela. Merci

Répondre

2

Je pense que votre problème est que ID est ce qui essaye réellement de se lier au gridView. Remplacez public int ID; par public int ID { get;set;} ou liez SetGet_ID à votre gridView au lieu de ID.

Bonne chance!

1

Dans la déclaration de vue de la grille essayer fournir "SetGet_ID" au lieu de "ID", comme indiqué ci-dessous

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="SetGet_ID" ...> 

Hope this helps !!

0

Tenir compte de ré-écrire votre code et le balisage par analogie avec les éléments suivants:

public class VivaClass 
{ 
    public VivaClass() 
    { 
     StudentObJ = new StudentClass(); 
     StudentObJ.GroupID = ""; 
     StudentObJ.UserName = ""; 
     StudentObJ.ProjectName = ""; 
     StudentObJ.City = ""; 
     this.Date = ""; 
     this.Time = ""; 
     this.isMake = false; 
    } 

    public VivaClass(string date, string time, bool isMake, string Gid, string uName, string Prjct, string city) 
    { 
     StudentObJ = new StudentClass(Gid, uName, Prjct, city); 
     this.Date = date; 
     this.Time = time; 
     this.isMake = isMake; 
    } 
    public VivaClass(string date, string time, bool isMake, string name, string city) 
    { 
     Student = new StudentClass(); 
     Student.UserName = name; 
     Student.City = city; 
     Date = date; 
     Time = time; 
     IsMake = isMake; 
    } 

    public StudentClass Student { get; set; } 

    public int ID { get; set; } 

    public string Date { get; set; } 

    public string Time { get; set; } 

    public bool IsMake { get; set; } 

    public IEnumerable<VivaClass> Vivas() 
    { 
     using (SqlConnection connection = new SqlConnection(new ConnectionString().GetConString(("SqlConString")))) 
     { 
      string query = "Select ID,GroupID,StudentName,ProjectName,City,Date,Time,isMake FROM SchedualTB"; 
      SqlCommand cmd = new SqlCommand(query, connection); 
      connection.Open(); 
      using (SqlDataReader dr = cmd.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 
        VivaClass obj = new VivaClass(); 
        obj.ID = (int(dr["ID"]; 
        obj.Student.GroupID = (string)dr["GroupID"]; 
        obj.Student.StudentName = (string)dr["StudentName"]; 
        obj.Student.ProjectName = (string)dr["ProjectName"]; 
        obj.Student.City = (string)dr["City"]; 
        obj.Date = (string)dr["Date"].ToString(); 
        obj.Time = (string)dr["Time"]; 
        obj.IsMake = (bool)dr["isMake"]; 
        yield return obj; 
       } 
      } 
     } 
    }  
} 

Markup:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" onrowediting="GridView1_RowEditing"> 
    <Columns> 
     <asp:TemplateField HeaderText="Group ID"> 
      <ItemTemplate> 
       <asp:Label ID="lblGroupID" runat="server" Text='<%# Eval("GroupID") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Student ID"> 
      <ItemTemplate> 
       <asp:Label ID="lblUserName" runat="server" Text='<%# Eval("UserName") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Student Name"> 
      <ItemTemplate> 
       <asp:Label ID="lblStudentName" runat="server" Text='<%# Eval("StudentName") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Project Name"> 
      <ItemTemplate> 
       <asp:Label ID="lblProjectName" runat="server" Text='<%# Eval("ProjectName") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Status" > 
      <ItemTemplate> 
       <asp:ImageButton ID="imgStatus" runat="server" CommandName="Edit" ToolTip="Change User status" ImageUrl="~/Image/logo/statusActive.png" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView>