0

このコードを使用して取得できるレコードは 1 つだけですが、複数のレコードをページに表示したいと考えています。ページに表示する 3 つの列がidありnameますlastname。どうすればこれを行うことができますか?

コードビハインド:

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

2 に答える 2

1

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

問題は、リストで static を使用する必要があることです。static を使用すると、アプリケーションが閉じられるまで挿入した値を保存できます。詳細については、静的キーワードを参照してください。

これは、この状況に対処するための私の方法です。

お役に立てれば

于 2013-08-07T08:50:17.983 に答える
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();
    }
}

}`

于 2013-08-08T13:02:20.277 に答える