如何动态地向ASP.NET中的表添加行?

voi*_*ter 20 c# asp.net visual-studio-2010

所以今天我开始学习ASP.NET.不幸的是我没有在网上找到任何好的教程,而且我现在买不起书籍,所以我不得不在Visual Studio 2010中创建一个ASP.NET Web应用程序,只需使用默认的项目设置.

到目前为止,这是我在Default.aspx中的内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Project Management</title>
</head>
<body>
    <div style="padding-bottom:10px;"> Project Management System</div>
    <div> <table style="width:100%;">
            <tr>
                <td>Name</td>
                <td>Task</td>
                <td>Hours</td>
            </tr>
    </table></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我创建了一个简单的表,其中已有标题行.通过C#脚本,我希望能够动态地向这个HTML表添加行.这是ASP.NET中正确的思考方式吗?如果是这样,我该怎么做?我确定我需要一个"添加"按钮,它会在表格中添加一个新行,包含可编辑的字段,以及一个"提交"按钮,可以将一些内容添加到数据库中.

基本上只是简单地了解这是如何做的将是如此有用.如果有人知道任何好的教程或网站可以帮助我解决这个问题,请告诉我.

提前致谢.

Joe*_*ton 45

你有没有尝试过Asp:Table?

<asp:Table ID="myTable" runat="server" Width="100%"> 
    <asp:TableRow>
        <asp:TableCell>Name</asp:TableCell>
        <asp:TableCell>Task</asp:TableCell>
        <asp:TableCell>Hours</asp:TableCell>
    </asp:TableRow>
</asp:Table>  
Run Code Online (Sandbox Code Playgroud)

然后,您可以根据需要在脚本中添加行,方法是创建它们并将它们添加到myTable.Rows

TableRow row = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = "blah blah blah";
row.Cells.Add(cell1);
myTable.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

考虑到你的问题描述,我会说你最好使用@Kirk Woll提到的GridView或Repeater.

编辑 - 此外,如果你想学习不买书,这里有一些你绝对需要熟悉的网站:

Scott Guthrie的博客
4来自Rolla
MSDN
代码项目Asp.Net的人


Moh*_*oud 7

除了Kirk所说的我想告诉你的是,只是"玩弄"不会帮助你学习asp.net,并且有很多免费且非常好的教程.
看看asp.net官方网站教程和4GuysFromRolla网站


Kir*_*oll 5

ASP.NET WebForms 不能以这种方式工作。你上面的只是普通的 HTML,所以 ASP.NET 不会给你任何添加/删除项目的工具。您需要做的是使用一个中继器控件,或者可能是一个 GridView。这些控件将在代码隐藏中可用。例如,Repeater 将公开一个“Items”属性,您可以在该属性上添加新项目(行)。在代码前端(.aspx 文件)中,您需要提供一个 ItemTemplate 来确定正文行的外观。网上有很多关于中继器的教程,所以我建议你谷歌一下以获取更多信息。