Мне нужно добавить содержимое страницы для динамического чтения из базы данных. Ниже приведен только черновик кода
<div>
<asp button>
< asp label>
</div>
Теперь предположим, что я прочитал идентификатор из БД как 1, затем я назначу одну кнопку с идентификатором = 1, а затем, аналогично читая базу данных, мне нужно отображать подразделения для каждой итерации прочитанного набора данных.
Как я могу это сделать?
Так же, как создание канала с кнопками, такими как Facebook Подробные изображения отображаются для каждого отдельного сообщения
я хочу что-то вроде этого
while(reader.read())
{<div><label><label><div>
}
Результат должен быть
Name ABC
Country B
OK Cancel
Name QWE
Country L
OK Cancel
обычная база данных сервера sql, я хочу создать канал из каждой строки данных, что-то похожее на сообщения facebook
Что вы пробовали? Код?
я просто не могу запустить, что процесс делает буквально, я хочу что-то вроде этого ``` while(reader.read()) {<div><label><label><div> }``` OutCome должен быть ``` Name ABC Страна B OK Отмена Название QWE Страна L OK Отмена ```
Первоначально вы можете попробовать что-то вроде этого и развиваться на нем:
//using System.Web.UI.HtmlControls;
var searchValue = "somethingYouSearchFor" ;
var connection = new SqlConnection("connection string here");
var query = new SqlCommand("SELECT Name, Country FROM MyTable WHERE value3 = @SearchValue", connection);
query.Parameters.AddWithValue("@SearchValue", searchValue);
connection.Open();
SqlDataReader reader = query.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
var addDiv = new HtmlGenericControl("div");
addDiv.ID = "anyId"; //Optional
addDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow"); //Optional
addDiv.Style.Add(HtmlTextWriterStyle.Color, "Black"); //Optional
addDiv.Style.Add(HtmlTextWriterStyle.Height, "200px"); //Optional
addDiv.Style.Add(HtmlTextWriterStyle.Width, "300px"); //Optional
var nameLabel = new HtmlGenericControl("label");
nameLabel.InnerText = reader["Name"];
addDiv.Controls.Add(nameLabel);
var countryLabel = new HtmlGenericControl("label");
countryLabel.InnerText = reader["Country"];
addDiv.Controls.Add(countryLabel);
this.Controls.Add(addDiv);
}
}
connection.Close();
reader.Close();
query.Dispose();
Это может быть самый простой способ доступа к базе данных, вам нужно заполнить строку подключения (по этой ссылке вы можете увидеть несколько примеров, включая строку подключения MS SQL).
Вам необходимо предоставить действительный SQL-запрос, соответствующий вашей базе данных (рекомендуется протестировать SQL-запрос в MS SQL Studio, также известной как SSMS), а затем реализовать его в коде C#.
Спасибо, он создал мне разделы, как я хотел, но есть ли способ стилизовать его, например, добавить </br> между разделами и между метками и добавить загрузку
@techlk , br — это самозакрывающийся тег, поэтому, насколько мне известно, он не поддерживается HtmlGenericControl
, но вы можете inherit
из него разработать что-то нестандартное. для получения дополнительной информации см. ответ в этом сообщении, пожалуйста stackoverflow.com/questions/13493586/…
Я думаю, что элемент управления повторителем asp.net работает лучше всего в вашей ситуации. Ссылка на MSDN здесь. Подобно примеру, показанному в документах MSDN, вы должны заполнить коллекцию данными из своей базы данных, а затем привязать эту коллекцию к источнику данных вашего повторителя.
Repeater1.DataSource = values;
Repeater1.DataBind();
В вашей разметке вы можете получить доступ к объекту в коллекции в пределах
<asp:Repeater id = "Repeater1" runat = "server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name") %> (<%# DataBinder.Eval(Container.DataItem, "Content") %>)
</ItemTemplate>
</asp:Repeater>
Приправьте его дополнительными надписями и стилями в соответствии с вашими потребностями.
Какая база данных? Что вы еще не пробовали?