Как динамически добавлять строки в таблицу в ASP.NET?
Итак, сегодня я начал изучать ASP.NET. К сожалению, я не нашел хороших обучающих онлайн, и я не могу позволить себе покупать книги в данный момент, поэтому мне пришлось создать веб-приложение ASP.NET в Visual Studio 2010 и просто поиграть с настройкой проекта по умолчанию.
Пока что у меня в моем 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>
Я создал простую таблицу со уже существующей строкой заголовка. Через С# script я хочу иметь возможность динамически добавлять строки в эту таблицу HTML. Это правильный способ мышления в ASP.NET? Если да, то как я могу это сделать? Я уверен, что мне понадобится кнопка "Добавить", которая добавит новую строку в таблицу, с редактируемыми полями и кнопкой "отправить", которая добавит некоторые вещи в базу данных.
В основном просто краткое изложение того, как это делается, было бы так полезно. Кроме того, если кто-нибудь знает хорошие учебники или веб-сайты, которые могут помочь мне в таких вещах, пожалуйста, дайте мне знать.
Спасибо заранее.
Ответы
Ответ 1
Вы пытались создать таблицу 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>
Затем вы можете добавить строки, как вам нужно, в script, создав их и добавив их в myTable.Rows
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = "blah blah blah";
row.Cells.Add(cell1);
myTable.Rows.Add(row);
Учитывая ваше описание вопроса, я бы сказал, что вам лучше использовать GridView или Repeater, как упомянуто @Kirk Woll.
EDIT - Кроме того, если вы хотите учиться, не покупая книги, вот несколько сайтов, с которыми вам обязательно нужно ознакомиться:
Блог Скотта Гатри
4 парня из Роллы
MSDN
Code Project Asp.Net
Ответ 2
в дополнение к тому, что сказал Кирк, я хочу сказать вам, что просто "играть" не поможет вам учиться asp.net, и есть много бесплатных и очень хороших учебников.
ознакомьтесь с инструкциями на официальном сайте asp.net и на 4GuysFromRolla сайте
Ответ 3
ASP.NET WebForms не работает таким образом. То, что у вас выше, это просто обычный HTML, поэтому ASP.NET не даст вам возможности добавлять/удалять элементы. Что вы хотите сделать, это использовать элемент управления Repeater или, возможно, GridView. Эти элементы управления будут доступны в коде. Например, Repeater выставляет свойство "Items", на которое вы можете добавлять новые элементы (строки). На кодовом фронте (файл .aspx) вы должны предоставить ItemTemplate, который заглушает то, как выглядят строки тела. В Интернете есть много обучающих программ для повторителей, поэтому я предлагаю вам google, чтобы получить дополнительную информацию.
Ответ 4
public partial class result : System.Web.UI.Page
{
static DataTable table1 = new DataTable("Shashank");
static DataSet set = new DataSet("office");
protected void Page_Load(object sender, EventArgs e)
{
lblEmployeeNumber.Text = HttpContext.Current.Request.Form["txtEmployeeNumber"];
lblFirstName.Text = Request.Form["txtFirstName"];
lblLastName.Text = Request.Form["txtLastName"];
lblTitle.Text = Request.Form["txtTitle"];
Int32 Rcount = Convert.ToInt32(table1.Rows.Count);
if (Rcount == 0)
{
table1.Columns.Add("ID");
table1.Columns.Add("FName");
table1.Columns.Add("LName");
table1.Columns.Add("Title");
table1.Rows.Add(lblEmployeeNumber.Text, lblFirstName.Text, lblLastName.Text, lblTitle.Text);
set.Tables.Add(table1);
}
else
{
if (lblEmployeeNumber.Text != "")
{
DataRow dr = table1.NewRow();
dr["ID"] = lblEmployeeNumber.Text;
dr["FName"] = lblFirstName.Text;
dr["LName"] = lblLastName.Text;
dr["Title"] = lblTitle.Text;
table1.Rows.Add(dr);
}
}
gvrEmp.DataSource = set;
gvrEmp.DataBind();
}
}
Ответ 5
Вам нужно ознакомиться с идеей "Серверная сторона" и код "Клиентская сторона". Это было давно, так как я должен был начать, но вы можете начать с некоторых видеоуроков по http://www.asp.net.
Следует отметить две вещи: если вы используете VS2010, на самом деле у вас есть две разные рамки для ASP.NET: WebForms и ASP.NET MVC2. WebForms является старым унаследованным способом, MVC2 позиционируется MS как альтернатива, а не замена WebForms, но мы увидим, как сообщество обрабатывает его в течение следующих нескольких лет. Во всяком случае, не забудьте обратить внимание на то, о чем говорит данный учебник.
Ответ 6
Вы можете использовать asp: Table в своей веб-форме и создать ее через код:
http://msdn.microsoft.com/en-us/library/7bewx260.aspx
Кроме того, посмотрите asp.net для учебных пособий и т.д.
Ответ 7
Динамически созданный для строки в таблице
См. ниже ссылку
http://msdn.microsoft.com/en-us/library/7bewx260(v=vs.100).aspx
Ответ 8
Ссылка для добавления через JS
https://www.youtube.com/watch?v=idyyQ23joy0
См. также ссылку ниже. Это поможет вам динамически добавлять строки "на лету":
https://www.lynda.com/C-tutorials/Adding-data-HTML-tables-runtime/161815/366843-4.html