按钮单击时将对象添加到阵列

时间:2017-10-02 16:38:28

标签: c# asp.net arrays webforms

我有一个"人"具有如下构造函数的类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Programming_handin_2___Arrays
{
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Password { get; set; }

    public Person(string name, int age, string password)
    {
        this.Name = name;
        this.Age = age;
        this.Password = password;
    }

    public override string ToString()
    {
        return Name + ", " + Age + ", " + Password;
    }
}
}

我还有一个带有几个Textbox的aspx页面,用于添加上面的变量。

    <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            Name:<br />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <br />
            Age:<br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <br />
            <br />
            Password:<br />
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Add person" />
            <br />
            <br />
        </div>
    </form>
</body>
</html>

我的目标是创造一个新的人物#34;每当有人填写表单并单击按钮时。 &#34;人&#34;然后应该显示在页面上。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

List<Person> persons;
 protected void Page_Load(object sender, EventArgs e){

  if(!IsPostBack){
     List<Person> persons= new List<Person>();
     Session["personslist"]=persons;
  }else{
     persons= (List<Person>)Session["personslist"];
  }
}

protected void Button1_Click(object sender, EventArgs e){
 persons.Add(new 
 Person(TextBox1.Text,int.parse(TextBox2.Text),TextBox3.Text));
}

答案 1 :(得分:0)

这个问题已经在这个网站上有多个重复,所以我会在这个答案中包含他们的链接,因为并非所有答案都是相同的,并且并非所有答案都可能正是您所寻找的。请确保在发布之前进行研究,因为我所要做的就是快速谷歌搜索&#34;动态添加元素到页面c#&#34;和第二个(用javascript替换c#)。我的快速谷歌搜索产生了多个答案,可以帮助您准确地完成您的要求,我相信我过去使用其中的两个来达到您想要做的同样的事情。

但这个想法很简单。基本上遍历您的Person对象集合,并将元素添加到指定的父元素,直到您的循环完成。其余的归结为造型,如果你在那里遇到问题,你应该为此开始一个新的问题。

以下堆栈溢出帖子可以帮助您找到正确的方向:

Dynamically add HTML to ASP.NET page

How to add HTML elements Dynamically (ASP.NET)

Can I dynamically add HTML within a div tag from C# on load event?

Create <div> and append <div> dynamically

HTML: Add elements dynamically using JS

另请随时查看this教程以及JavaScript中createElement函数的this资源。