C# 构建asp.net表

C# 构建asp.net表,c#,php,asp.net,html-table,C#,Php,Asp.net,Html Table,我是一名PHP开发人员,但现在我正在用C#学习asp.net,因为这是我们公司的一项要求。我熟悉C#和oops的基础知识。我面临的问题是,我学会了如何从数据库中检索值并创建数据表。现在我知道我可以绑定一个网格控件来显示数据,但是这种技术限制了我对datagrid做一些自己的事情。现在我想要的是,如果我需要构建一个表,我通常会用PHP硬编码这个表 比如: .... .... ?> 我知道我可以用转发器做这样的事情,但不确定我是否想使用这样的控件,或者仅仅因为我不太熟悉asp.net样式 那么有

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


....
....
?>
我知道我可以用转发器做这样的事情,但不确定我是否想使用这样的控件,或者仅仅因为我不太熟悉asp.net样式

那么有谁能指导我怎么做? 或者请告诉我,如果我知道如何在PHP中学习asp.net,我应该做些什么

更新: 好的,这是我做的,但我仍然得到一个错误

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

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


您不仅限于使用网格控件,还可以通过循环特定数据表中的数据行来生成自己的标记。例如,您可以执行以下操作:

<%
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列的内容(当然,假设它们的名称是“Column1”、“Column2”和“Column3”),每个列都有自己的TD,包装在TR中。但我相信您已经明白了

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

编辑我更新了代码段,将DataView类型用于枚举。。。只需记住包含System.Data命名空间以使用“AsDataView()”扩展方法。或者,您可以获得如下数据视图:

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

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

  • 使用GridView或类似服务器端控件。查看更多信息或
  • 遍历数据集并手动创建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>
                  <% }
                 %> 
    
    
    +  + 
    +  + 
    +  + 
    .....
    +  + 
    
    三,。使用


    对于有PHP经验的人来说,我认为第2条更有意义。

    生成表的最简单方法是使用本机asp.net gridview控件。还有其他的方法,但我建议先看看gridview。感谢Emmanuel N的精彩回答,是的,第二种解决方案对我来说更具意义。我会尝试一下你上面建议的方法,然后再给你回复。非常感谢你的回答。谢谢你给我的回答@FarligOpptreden。。我相信使用Zend这样的框架可以使代码更易于维护。至于上面建议的方法,我会尝试一下,然后再给你回复。如果你能再帮我一件事。。。从那里我可以找到一些关于MVC的好教程。说到这个,我不想成为一个糟糕的程序员!如果我的回答帮助你解决了你的问题,你可以考虑把它标记为答案。很抱歉回复得太晚,但我还是遇到了一些问题。我已经创建了一个名为abc的datatable,并按照您的建议在中为每个表使用该表,但我得到的错误如下:foreach语句无法对“System.Data.datatable”类型的变量进行操作,因为“System.Data.datatable”不包含“GetEnumerator”的公共定义。您也可以尝试使用类型DataView(以及相应的DataRowView)…循环时,只需执行以下操作:foreach(myDataTable.AsDataView()中的DataRowView行)
            <%
               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>
                  <% }
                 %>