正在构建asp.net表

本文关键字:net asp 构建 | 更新日期: 2023-09-27 18:20:26

我是一名PHP开发人员,但现在我正在用C#学习asp.net,因为这是我们公司的要求。我熟悉C#和oops的基础知识。我面临的问题是,我学会了如何从数据库中检索值并制作数据表。现在我知道我可以绑定一个网格控件来显示数据,但这种技术限制了我对数据网格做一些自己的事情。现在我想要的是,如果我需要构建一个表,我曾经用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风格。

有人能告诉我该怎么做吗?或者,如果我知道如何用PHP学习asp.net,请告诉我该怎么做?

更新:好吧,这是我所做的,但我仍然有一个错误。

首先,我通过从dataadapter填充数据集创建了一个数据库,然后我按照建议使用了代码,但我得到了以下错误:

foreach语句无法对"System.Data.DataTable"类型的变量进行操作,因为"System.Data.DataTable"不包含"GetEnumerator"的公共定义

正在构建asp.net表

您不局限于只使用您可以使用的Grid控件,您可以通过循环特定数据表中的数据行来生成自己的标记。例如,你可以这样做:

<%
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列"answers"第3列"),每个列都有自己的TD,并封装在TR中。但我相信你已经明白了。。。

我的建议是实现MVC框架(无论是ASP.NET MVC框架还是您自己的MVC框架),因为它更容易适应PHP背景。

EDIT我更新了代码段,以便使用DataView类型进行枚举。。。只需记住包含System.Data命名空间即可使用"AsDataView()"扩展方法。或者,您可以获得如下DataView:

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

有几种方法可以实现这一点:

  1. 使用GridView或类似的服务器端控件。有关更多信息,请查看此示例或此示例
  2. 循环浏览数据集并手动创建html。通过将ASP.NET代码与纯HTML混合,更像您在PHP中所经历的。更像@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更有意义。