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

时间:2015-03-20 07:00:21

标签: c# asp.net c#-4.0

我正在关注本教程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();
    }

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

1 个答案:

答案 0 :(得分:0)

尝试以下代码: 首先制作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>

希望它有所帮助。 :)