/ / Изграждане на таблици asp.net - c #, php, asp.net, html-table

Изграждане на таблици asp.net - c #, php, asp.net, html-table

Аз съм разработчик на PHP, но сега уча ас.net с C #, тъй като това е изискване на нашата компания. Аз съм запознат с основите на C # и ООП. Проблемът, пред който съм изправен, е, че научих как да извличам стойности от базата данни и да създам таблица с данни. Сега от това знам, че мога да обвържа контрола на мрежата за показване на данните, но тази техника ме ограничава да правя част от собствените си неща в дейтаграда. Сега искам да използвам твърдия код на таблицата в PHP, ако имах нужда да построя маса като:

<?php
*/
retrive the data from the database and store it in an array using $row_sql = mysql_fetch_array() function
/*
....
....
?>
<table>
<tr>
<td><?php $row_sql["fieldname"]; ?></td>
</tr>
....
....

</table>
?>

Знам, че мога да направя такова нещо с повторител, но не съм сигурен, че искам да използвам такъв контрол или неговата само защото аз не съм толкова запознат с стила на asp.net.

Така че може ли някой да ме насочи как мога да направя това? Или моля, кажете ми какво трябва да направя, за да науча asp.net, ако знам как да го направя в PHP?

Update: Добре ето какво направих, но все още получавам грешка.

Първоначално създадох база данни, като напълних набор от данни от информационния адаптер, след това използвах кода, както е предложено, но получавам следната грешка:

statement foreach не може да работи на променливи тип "System.Data.DataTable", защото "System.Data.DataTable" не съдържа публично определение за "GetEnumerator"

Отговори:

1 за отговор № 1

Не се ограничавате само до използването на мрежатаконтроли на ваше разположение - можете да генерирате свой собствен маркер, като завъртите редовете за данни в конкретната таблица с данни. Можете например да направите нещо подобно:

<%
foreach (DataRowView dr in myDataTable.AsDataView())
{
Response.Write("<tr>");
Response.Write("<td>" + dr["Column1"].ToString() + "</td>");
Response.Write("<td>" + dr["Column2"].ToString() + "</td>");
Response.Write("<td>" + dr["Column3"].ToString() + "</td>");
Response.Write("</tr>");
}
%>

Това ще пресече всеки ред данни в даннитетаблицата и напишете съдържанието на колони 1-3 (като се предположи, че техните имена са "Колона1", "Колона2" и "Колона3", разбира се), всяка в своето собствено ТД, увит в TR. Но аз съм сигурен, че си го сметнал вече ...

Моето предложение е по-скоро да приложите MVC рамка (независимо дали е ASP.NET MVC framework или ваша), тъй като би било по-лесно да се адаптирате, идващи от PHP фона.

РЕДАКТИРАНЕ Аз актуализирах кодовия фрагмент, за да използвам DataViewтип за изброяване ... Само не забравяйте да включите пространството за имена System.Data, за да използвате метода за разширение "AsDataView ()". Друга възможност е да получите DataView, както следва:

<%
foreach (DataRowView dr in new DataView(myDataTable))
{
// code...
}
%>

1 за отговор № 2

Има няколко начина, по които можете да постигнете това:

  1. Използване на GridView или подобен контрол на страничните параметри. За повече поглед този пример или този пример
  2. Завъртане чрез набор от данни и ръчно създаване на HTML. По-скоро като това, което сте били в PHP чрез смесване на ASP.NET код с обикновен HTML. По-скоро това, което предложи @FarligOpptreden

Нещо като:

        <%
foreach (var row in myDataTable)
{%>
<tr>
<td> + <%=row[1].ToString()%> + </td>
<td> + <%=row[1].ToString()%> + </td>
<td> + <%=row[1].ToString()%> + </td>
.....
<td> + <%=row[n].ToString()%> + </td>
<% }
%>

3. употреба управление на сървър за таблици.

За някой с PHP опит мисля, че номер 2 ще има повече смисъл.