将用户输入添加到List然后填充Gridview

时间:2011-11-02 16:22:47

标签: c# gridview

我有一个3层应用程序(DAL,BBL,UI) 目前BBL没有什么只是传球通过

我有一个网格视图,为简单起见,一个文本框(TB)和一个下拉列表(DDL)。 和两个提交按钮。

(我将自定义类更改为Object。仅用于此示例)

首先提交按钮添加TB.text& DDL.SelectedValue到UI中的对象X.

BBL将该对象X添加到BBL中的List(X)。

然后BBL应该使用List(X)填充Gridview。 (使用ajax部分页面加载)

第二个Submit应该将完整的List(X)发送到数据库。

我遇到的问题是,当我点击第一个提交(本地)我没有得到新的行只是继续写同一行。我想念的是什么?

UI类中的

   private businesslogic blogic = new businesslogic();

   protected void B1_local_Click(object sender, EventArgs e)
    {

        object x = new object();
        x.id = Convert.ToInt32(TB_1.Text);
        x.var1 = Convert.ToInt32(DDL_1.SelectedValue);

        blogic.addrowtolist(x);

        Gridview1.DataSource = blogic.grablist();
        Gridview1.Databind();

     }

在BBL课程中

    public List<object> locallist = new List<object>();
    public void addrowtolist(object x)
    {
       locallist.Add(x);

    }
    public List<object> grablist()
    {
     return locallist;
    }

1 个答案:

答案 0 :(得分:0)

每次回发时,您都会使用新的(空)List加载新的BL。要查看您的列表增长,您需要将其保存在一个请求与下一个请求之间持续(不会消失)的位置。

我建议将您的列表放入会话密钥

Session["items"] = blogic.locallist;

然后将其拉出并在回发时将其发送到第二个BL构造函数。这可能是最简单的,但并不总是正确的方法。

http://msdn.microsoft.com/en-us/library/z1hkazw7.aspx