【问题标题】:How to bind a ListBox to a DataTable from a session object?如何将 ListBox 从会话对象绑定到 DataTable?
【发布时间】:2012-01-10 13:16:52
【问题描述】:

我有一个会话对象,其中包含上一页的 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();
        }
     }
 }

我得到这个结果:

有什么建议吗?

谢谢, 利隆

【问题讨论】:

    标签: c# asp.net listbox datatable


    【解决方案1】:

    您似乎忘记了 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);,因为您似乎没有使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-27
        • 1970-01-01
        • 2012-10-09
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        • 2010-12-21
        • 2019-01-28
        相关资源
        最近更新 更多