2012-01-10 82 views
3

我有一个会话对象,其中包含我的上一页中的DataTable, ,我想将此DataTable绑定到ListBox。如何将一个ListBox从会话对象绑定到DataTable?

心中已经做到了这一点:

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

回答

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);,因为它看起来像你没有使用它。

相关问题