将用户输入添加到列表,然后填充Gridview
本文关键字:然后 填充 Gridview 列表 用户 输入 添加 | 更新日期: 2023-09-27 18:13:32
我有一个三层应用程序(DAL, BBL, UI)BBL现在什么都不做,只是一个传递
我有一个网格视图,为了简单起见,一个文本框(TB)和一个下拉列表(DDL)。和两个提交按钮。
(我改变了我的自定义类对象。就这个例子而言)
First Submit按钮添加TB。文本,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;
}
每次回发时,都要加载一个带有新(空)List的新BL。为了看到列表的增长,您需要将其保存在一个请求和下一个请求之间持续存在(不会消失)的地方。
我建议将List放在会话密钥中
Session["items"] = blogic.locallist;
,然后在回发时将其拉出并发送给第二个BL构造函数。这可能是最简单的方法,但并不总是正确的方法。
http://msdn.microsoft.com/en-us/library/z1hkazw7.aspx