2013-08-07 3 views
0

Je reçois seulement 1 enregistrement en utilisant ce code, mais je veux afficher plusieurs enregistrements sur la page. J'ai 3 colonnes à afficher sur la page qui sont: id, name et lastname. Comment puis-je faire cela?Utilisez uniquement la liste/collection pour stocker des données localement sur la page Web

code

Derrière:

protected List<Class1> GetClass1() 
{ 
    Class1 uinfo = new Class1(); 
    uinfo.ID = Convert.ToInt16(TextBox1.Text); 
    uinfo.Name = TextBox2.Text; 
    uinfo.LastName = TextBox3.Text; 
    data.Add(uinfo); 
    return data; 
} 

protected void BindUserDetails() 
{ 
    data = GetClass1(); 
    GridView1.DataSource = data; 
    GridView1.DataBind(); 
} 

fichier Classe:

public class Class1 
{ 
    Int16 id; 
    string name = string.Empty; 
    string lastname = string.Empty; 

    public Int16 ID 
    { 
     get { return id; } 
     set { id = value; } 
    } 

    public string Name 
    { 
     get { return name; } 
     set { name = value; } 
    } 

    public string LastName 
    { 
     get { return lastname; } 
     set { lastname = value; } 
    } 
} 
+1

avez-vous plus d'un groupe de TextBoxes sur votre formulaire? à partir de ce code, un enregistrement serait attendu, puisque vous lisez directement à partir de 3 zones de texte sur la page en 3 propriétés dans une seule instance de classe .... – Claies

+0

Oui c'est ce que je veux faire. #Elegant Coder –

+0

Je n'ai aucun autre groupe. #Andrew Counts –

Répondre

1

Je suis une solution pour vous. Ceci est juste un exemple d'implémentation. S'il vous plaît modifier selon vos besoins.

Le code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.ComponentModel; 

namespace BindingListSample 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     static List<Employee> bindingL = new List<Employee>(); 
     protected void Btn_Click(object sender, EventArgs e) 
     { 
      bindingL.Add(new Employee { Name = TxtName.Text }); 
      GrvSample.DataSource = bindingL; 
      GrvSample.DataBind(); 
     } 
    } 
    public class Employee 
    { 
     public string Name { get; set; } 
    } 
} 

Le problème est que vous devez utiliser statique avec votre liste. Lorsque vous utilisez static, vous pouvez stocker les valeurs que vous avez insérées jusqu'à la fermeture de l'application. Reportez-vous à Mot clé statique pour plus d'explications.

Ceci est juste ma façon de faire face à cette situation.

Hope this helps

+0

@ Elegant Coder: Comment SUPPRIMER un enregistrement? –

+0

@deeppatel: Devrait être une question différente, je suppose .. Et probablement une recherche google d'abord. –

0
`List<Class1> data = new List<Class1>(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 

     } 
     if (Session["test"] != null) 
     { 
      data = Session["test"] as List<Class1>; 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     Class1 cl = new Class1 { ID = Convert.ToInt16(TextBox1.Text), Name = TextBox2.Text, LastName = TextBox3.Text }; 
     data.Add(cl);    
     Session["test"] = data; 

     dataBind(); 
    } 

    protected void dataBind() 
    { 
     GridView1.DataSource = data; 
     GridView1.DataBind(); 
    } 
} 

} `

Questions connexes