仅使用列表/集合在网页上本地存储数据

时间:2013-08-07 07:05:55

标签: c# generic-collections

我使用此代码只获得1条记录,但我想在页面上显示多条记录。我在页面上显示了3列:idnamelastname。 我怎么能这样做?

代码背后:

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();
}

班级档案:

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; }
    }
}

2 个答案:

答案 0 :(得分:1)

我为你找到了一个解决方案。这只是一个示例实现。请根据您的要求进行修改。

守则:

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; }
    }
}

问题是您需要在列表中使用静态。使用静态时,可以存储已插入的值,直到关闭应用程序。有关详细说明,请参阅静态关键字。

这只是解决这种情况的方法。

希望这有助于

答案 1 :(得分: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();
    }
}

}`