如何将一个ListBox绑定到来自Session对象的DataTable?

3
我有一个会话对象,其中包含来自我的上一页的DataTable,我想将此DataTable绑定到ListBox。
我已经这样做了:
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (Session["bestStocks"] !=null)
        {
            DataTable dt = new DataTable();


            dt = (DataTable)Session["bestStocks"];

            DataView dv = new DataView(dt);
            BestStockslb.DataSource = dt;
            BestStockslb.DataBind();
        }
     }
 }

我得到了这个结果: enter image description here
有什么建议吗?
谢谢, liron

2个回答

3

看起来你忘记了DataTextField和DataValueField

 dt = (DataTable)Session["bestStocks"];

DataView dv = new DataView(dt);
BestStockslb.DataSource = dt;
BestStockslb.DataTextField =  "Name";
BestStockslb.DataValueField =  "ID"; 
BestStockslb.DataBind();

2

修改这一行代码:

BestStockslb.DataSource = dt;

致:

BestStockslb.DataSource = dt.DefaultView;

您还需要设置BestStockslb的DataTextField和DataValueField属性,以链接到返回数据中所需的字段。这就是为什么会得到DataRowView输出的原因。

如果您没有使用它,可以删除DataView dv = new DataView(dt);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接