Как привязать ListBox к DataTable из объекта сеанса? - PullRequest
3 голосов
/ 10 января 2012

У меня есть объект сеанса, который содержит 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 голосов
/ 10 января 2012

Кажется, вы забыли DataTextField и DataValueField

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

DataView dv = new DataView(dt);
BestStockslb.DataSource = dt;
BestStockslb.DataTextField =  "Name";
BestStockslb.DataValueField =  "ID"; 
BestStockslb.DataBind();
2 голосов
/ 10 января 2012

Изменить эту строку:

BestStockslb.DataSource = dt;

Кому:

BestStockslb.DataSource = dt.DefaultView;

И вам также нужно установить свойства DataTextField и DataValueField в BestStockslb для ссылки на обязательные поля в возвращаемых данных. Вот почему вы получаете вывод DataRowView.

Вы также можете удалить DataView dv = new DataView(dt);, так как похоже, что вы его не используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...