Как связать данные из таблицы базы данных с HTML-элементом управления, таким как div или tab? - PullRequest
0 голосов
/ 06 декабря 2011

Я разрабатываю один веб-сайт. На этом веб-сайте хотят использовать только элементы управления HTML для отображения данных. Я извлекаю некоторые данные из таблицы моей базы данных в файл кода, данные хранятся в базе данных. Я хочу показать эти данные в формате сетки. Но я не хочу использовать какой-либо элемент управления asp.net, такой как gridview, ретранслятор и т. Д.

Как это сделать?

Ответы [ 4 ]

3 голосов
/ 06 декабря 2011

Элементы управления ASP.NET в любом случае отображаются как элементы управления HTML, поэтому при использовании элементов управления ASP.NET вы будете использовать только элементы управления HTML.

Например, ASP.NET GridView отображается как HTML Table при передаче клиенту (браузеру)

Если вы хотите использовать только элементы управления HTML для полного контроля над стилями и атрибутами, вы можете использовать элемент управления Repeater с table:

<table>
  <asp:repeater id="rep" runat="server">
    <itemtemplate>
       <tr>
          <td><%#eval("ColumnName")%></td>
       </tr>
    </itemtemplate>
  </asp:repeater>
</table>
1 голос
/ 06 декабря 2011

Если вы действительно не хотите использовать элемент управления сеткой, просто добавьте элемент управления заполнителем на страницу.

<asp:PlaceHolder id="placeHolder" runat="server"></asp:PlaceHolder>

Затем динамически создайте сетку с использованием объектов Table и Row, затем, как только вы построите страницу, добавьте ее в качестве заполнителя.

placeHolder.Controls.Clear();
Table table = new Table()

//.. foreach loop through your data sourde

   TableRow row = new TableRow()
   TableCell cell = new TableCell()

   cell.Text = "your data element";

   row.Cells.Add(cell);
   table.Rows.Add(row);

//.. close loop

placeHolder.Controls.Add(table);

Эта ссылка делает нечто подобное

Я делал это раньше (не помню, почему), но вы не сможете легко разбить страницу на страницы или отсортировать данные. Для этого вам понадобится просмотр списка или тому подобное. Но это создаст сетку, которую вы хотите. Я все еще рекомендовал бы взглянуть на ListView, Repeater и т.д ....

0 голосов
/ 06 декабря 2011

Вы можете использовать разметку в стиле MVC:

<%foreach (var row in myData) {%>
    <%=row["somedata"]%>
<%}%>

С технической точки зрения все в порядке.Дело в том, почему вы?Если вы используете веб-формы, то веб-контролы делают все это для вас гораздо более аккуратно.Как уже упоминалось, вы можете использовать повторитель, который не добавляет html, но будет повторять любой html в своих шаблонах.

0 голосов
/ 06 декабря 2011

Другим способом будет возвращение строки html, например:

Поместите div на страницу aspx,

<div id="divHtml" runat="server"  > </div>

Код сзади,

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

// instantiate a datagrid
DataGrid dg = new DataGrid();
dg.DataSource = dataTable; //your dataTable
dg.DataBind();
dg.RenderControl(htw);
divHtml.InnerHtml = sw.ToString();  

Здесь sw выдаст вам полностью обработанную HTML-строку. Sw также может быть добавлен в поток ответов, например response.Write(sw.ToString());

Надеюсь, это поможет.

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