2010-09-24 68 views
17

Así que hoy comencé a aprender ASP.NET. Lamentablemente, no encontré buenos tutoriales en línea y no puedo comprar libros en este momento, así que tuve que crear una aplicación web ASP.NET en Visual Studio 2010 y simplemente jugar con la configuración predeterminada del proyecto. .¿Cómo agregar dinámicamente filas a una tabla en ASP.NET?

Hasta el momento esto es lo que tengo en mi 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> 

he creado una tabla sencilla con la fila de encabezado ya allí. A través de un script C#, quiero poder agregar filas dinámicamente a esta tabla HTML. ¿Es esta la forma correcta de pensar en ASP.NET? Si es así, ¿cómo puedo hacer esto? Estoy seguro de que necesitaré un botón "Agregar", que agrega una nueva fila a la tabla, con campos editables, y un botón "enviar" que agrega algunas cosas a una base de datos.

Básicamente, sólo un resumen de cómo se hace esto sería siempre muy atento. Además, si alguien conoce algunos buenos tutoriales o sitios web que puedan ayudarme con este tipo de cosas, hágamelo saber.

Gracias de antemano.

Respuesta

35

¿Ha intentado el Asp: Tabla?

<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> 

A continuación, puede añadir filas como sea necesario en la secuencia de comandos mediante la creación de ellos y agregarlos a myTable.Rows

TableRow row = new TableRow(); 
TableCell cell1 = new TableCell(); 
cell1.Text = "blah blah blah"; 
row.Cells.Add(cell1); 
myTable.Rows.Add(row); 

Dada la descripción de su pregunta, sin embargo, yo diría que sería mejor usando un GridView o Repeater como lo menciona @Kirk Woll.

EDITAR - Además, si usted desea aprender sin tener que comprar los libros aquí hay algunos sitios que tienen una necesidad imperiosa para familiarizarse con:

Scott Guthrie's Blog
4 Guys from Rolla
MSDN
Code Project Asp.Net

+0

Gran solución ,, millón de gracias – bebosh

3

ASP.NET Web Forms no funciona de esta manera. Lo que tienes arriba es solo HTML normal, por lo que ASP.NET no te dará ninguna facilidad para agregar/eliminar elementos. Lo que querrá hacer es usar un control Repeater, o posiblemente un GridView. Estos controles estarán disponibles en el código subyacente. Por ejemplo, el repetidor expondría una propiedad de "Artículos" sobre la que puede agregar nuevos elementos (filas). En el frente de código (el archivo .aspx), usted proporcionaría una Plantilla de elemento que muestra cómo se verían las filas de cuerpo. Hay muchos tutoriales en la web para repetidores, por lo que le sugiero que busque en Google para obtener más información.

7

además de lo que Kirk dijo que yo quiero decir que sólo "jugar" no ayudará a aprender asp.net, y hay un montón de tutoriales gratuitos y muy buenos.
eche un vistazo a los tutoriales del sitio oficial asp.net y en el sitio 4GuysFromRolla

2

Es necesario familiarizarse con la idea del código "Servidor" vs. "Cliente". Ha pasado mucho tiempo desde que tuve que comenzar, pero es posible que desee comenzar con algunos de los videos tutoriales en http://www.asp.net.

Dos cosas a tener en cuenta: si está utilizando VS2010 que realmente tiene dos marcos diferentes para elegir para ASP.NET: ASP.NET WebForms y MVC2.WebForms es la vieja forma heredada, MVC2 está siendo posicionada por MS como una alternativa que no reemplaza a WebForms, pero veremos cómo lo maneja la comunidad en los próximos años. De todos modos, asegúrese de prestar atención a cuál de ellos está hablando un tutorial dado.

3
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(); 

    } 
} 
1

Enlace para añadir través de JS https://www.youtube.com/watch?v=idyyQ23joy0

Por favor, consulte el siguiente enlace, así . Esto ayudará a agregar las filas dinámicamente sobre la marcha: https://www.lynda.com/C-tutorials/Adding-data-HTML-tables-runtime/161815/366843-4.html

+0

Esto puede responder a la pregunta en teoría, pero sería mejor para incluir las partes esenciales de la respuesta en este caso para los futuros usuarios, y proporcione el enlace para referencia. Las respuestas dominadas por enlaces pueden perder validez – abarisone

Cuestiones relacionadas