Заполнение DataTable на основе значений строк в DataSet - PullRequest
1 голос
/ 09 января 2012

Я хочу показать некоторые новостные посты на главной странице сайта. Новости имеют разные категории, но хранятся в одной базе данных MySQL. Все новости загружаются в набор данных, но оттуда я просто хочу извлечь некоторые конкретные новости и показать их в элементе управления ListView.

В настоящее время я использую обходное решение: использовать цикл foreach для набора данных и форматировать результат с помощью html в коде позади. Это работает, но я хочу, чтобы все html-форматирование выполнялось в aspx-файле, поэтому я ищу лучшее решение.

        DataSet articles = db.loadAllArticles();
        foreach (DataRow item in articles.Tables["articles"].Select("category = 1"))
        {
            result += "<h1 class='headline'>" + item["headline"] + "</h1><h2 class='introduction'>" + item["introduction"] + "</h2><p class='content'>" + item["content"] + "</p><p class='authorAndDate'>" + item["author"] + " " + item["datePosted"].ToString().Substring(0,10) + "</p><br/>";                  
        }
        lblDisplay.Text = result;

Я надеялся, что смогу сделать что-то вроде этого:

DataSet articles = db.loadAllArticles();
ListView1.DataSource = articles.Tables["articles"].Select("category = 1");
ListView1.DataBind();

Но элемент управления ListView не слишком рад попыткам привязать к нему DataRow или что-то еще. Лучший обходной путь, который я могу придумать, - это создать новую таблицу в наборе данных «article», которая будет содержать только статьи выбранной категории, примерно так:

DataSet articles = db.loadAllArticles();
articles.Tables.Add("frontPageArticles");
articles.Tables["frontPageArticles"] = ???

И тогда на этом все и заканчивается. Как я могу заполнить новую таблицу данных строками из другой таблицы данных, где значение столбца равно x?

-Эрик.

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Вы должны попытаться связать свой ListView с DataView , он фильтруется и сортируется.

0 голосов
/ 09 января 2012

Вы можете создать свою веб-форму, используя элементы управления, такие как ретранслятор, список данных и т. Д., И можете связать эти элементы управления с вашими данными в codebehind.

Пример можно найти здесь

...