在没有数据库的情况下在网格视图中存储值的问题

Issue in storing values in grid view without database

我正在学习本教程 http://www.c-sharpcorner.com/Blogs/8274/insert-data-in-grid-view-without-using-database.aspx。 我做的和在里面做的完全一样。基本上我必须在没有数据库的情况下在网格视图中存储值。现在的问题是,当用户第二次单击 Button1_Click() (如本教程中所述)按钮时,前一行将被丢弃。我希望无论何时用户单击按钮,该值都应保存在网格中。请帮帮我!!!

    DataTable dt;
    protected void btnUpload_Click(object sender, EventArgs e)
    {

        DataRow dr = dt.NewRow();
        dr[0] = txtUrl.Text;
        dt.Rows.Add(dr);
        grdDummy.DataSource = dt;
        grdDummy.DataBind();

    }
    private void BindGrid()
    {
        dt = new DataTable();
        DataColumn dc1 = new DataColumn("Name");
        dt.Columns.Add(dc1);
        DataRow dr = dt.NewRow();
        grdDummy.DataSource = dt;
        grdDummy.DataBind();
    }

请注意,BindGrid() 在 page_load 事件中被调用..

试试下面的代码: 首先使 Serializable Class 包含您的字段,例如

`[Serializable]
public class Class1
{
    public Class1()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    public string Name { get; set; }
    public string Address { get; set; }
}

然后在您的页面上,使用以下代码:

protected void Page_Load(object sender, EventArgs e)
{

}

Class1 obj = new Class1();
static List<Class1> lst = new List<Class1>();

protected void Button1_Click(object sender, EventArgs e)
{
   obj.Name = TextBox1.Text;
   obj.Address = TextBox2.Text;

   lst.Add(obj);

   GridView1.DataSource = lst; 
   GridView1.DataBind();
}

并在设计页面上

<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="true">
    </asp:GridView>

希望对您有所帮助。 :)