Как динамически добавлять строки в таблицу в ASP.NET? - PullRequest
18 голосов
/ 24 сентября 2010

Итак, сегодня я начал изучать 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>

Я создал простую таблицу со строкой заголовка, которая уже там.С помощью скрипта C # я хочу иметь возможность динамически добавлять строки в эту таблицу HTML.Это правильный способ мышления в ASP.NET?Если так, как я могу это сделать?Я уверен, что мне понадобится кнопка «Добавить», которая добавляет новую строку в таблицу с редактируемыми полями, и кнопка «Отправить», которая добавляет некоторые вещи в базу данных.

В основном простократкое изложение того, как это делается, было бы очень полезно.Также, если кто-нибудь знает какие-нибудь хорошие учебники или веб-сайты, которые могут помочь мне с такими вещами, пожалуйста, дайте мне знать.

Заранее спасибо.

Ответы [ 10 ]

44 голосов
/ 24 сентября 2010

Вы пробовали 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>  

Затем вы можете добавить строки в сценарии, сколько вам нужно, создав их и добавив в 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.

РЕДАКТИРОВАТЬ - Кроме того, если вы хотите учиться, не покупая книги, вот несколько сайтов, с которыми вам абсолютно необходимо ознакомиться:

Блог Скотта Гатри
4 парня из Ролла
MSDN
Код проекта Asp.Net

7 голосов
/ 24 сентября 2010

в дополнение к тому, что сказал Кирк, я хочу сказать вам, что просто «тренировка» не поможет вам освоить asp.net, и есть много бесплатных и очень хороших учебников.посмотрите учебники на официальном сайте asp.net и 4GuysFromRolla site

4 голосов
/ 24 сентября 2010

ASP.NET WebForms не работает таким образом.То, что у вас есть выше, это просто обычный HTML, поэтому ASP.NET не предоставит вам возможности добавлять / удалять элементы.То, что вы хотите сделать, это использовать элемент управления Repeater или, возможно, GridView.Эти элементы управления будут доступны в коде позади.Например, Repeater предоставит свойство «Items», в которое можно добавлять новые элементы (строки).В кодовой части (файл .aspx) вы бы предоставили шаблон ItemTemplate, который заглушает, как будут выглядеть строки тела.В Интернете существует множество учебных пособий для репитеров, поэтому я предлагаю вам воспользоваться Google, чтобы получить дополнительную информацию.

3 голосов
/ 26 июля 2012
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();

    }
}
2 голосов
/ 13 февраля 2014

Динамически создается для строки в таблице

См. Ниже ссылку

http://msdn.microsoft.com/en-us/library/7bewx260(v=vs.100).aspx

2 голосов
/ 24 сентября 2010

Вы можете использовать таблицу asp: в своей веб-форме и создать ее с помощью кода:

http://msdn.microsoft.com/en-us/library/7bewx260.aspx

Кроме того, проверьте asp.net для учебных пособий и тому подобное.

2 голосов
/ 24 сентября 2010

Вам необходимо ознакомиться с идеей кода «Серверная часть» и «Код клиентской стороны».Прошло много времени с тех пор, как мне пришлось начать, но вы можете начать с некоторых видеоуроков по адресу http://www.asp.net.

Две вещи, на которые стоит обратить внимание: если вы используете VS2010, у вас действительнодве разные платформы для выбора для ASP.NET: WebForms и ASP.NET MVC2.WebForms - это старый унаследованный способ, MVC2 позиционируется MS как альтернатива, а не замена WebForms, но мы увидим, как сообщество справится с этим в течение следующих нескольких лет.В любом случае, обязательно обратите внимание, о чем идет речь в данном руководстве.

1 голос
/ 07 июля 2016

Ссылка для добавления через JS https://www.youtube.com/watch?v=idyyQ23joy0

Пожалуйста, смотрите также ссылку ниже. Это поможет вам динамически добавлять строки на лету: https://www.lynda.com/C-tutorials/Adding-data-HTML-tables-runtime/161815/366843-4.html

0 голосов
/ 09 ноября 2018

Вам нужно использовать JavaScript в своем HTML и убедиться, что вы используете формы, чтобы. Наконец, вы можете сериализовать данные, используя метод Ajax, чтобы отправить данные из HTML в базу данных

0 голосов
/ 09 августа 2018
<html>
<head>
  <title>Row Click</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script>
        function test(){
            alert('test');
        }
  $(document).ready(function(){
        var row='<tr onclick="test()"><td >Value 4</td><td>Value 5</td><td>Value 6</td></tr>';
        $("#myTable").append(row);
});
  </script>
</head>
<table id="myTable" >
<th>Column 1</th><th>Column 2</th><th>Column 3</th>
<tr onclick="test()">
    <td >Value 1</td>
    <td>Value 2</td>
    <td>Value 3</td>
</tr>
</table>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...